2010-10-10 7 views
2

J'ai un HttpWebRequest:Obtenez simple demande

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(methodUrl.ToString()); 
req.Method = "POST"; 
string postData = Serializer.Serialize(GetAllFields()); 
req.ContentType = @"application/json; charset=utf-8"; 
req.Accept = @"application/json; charset=utf-8"; 
... 

Et je voudrais voir la demande brute réelle avant qu'il ne soit envoyé.
(req.ToString() donne uniquement le type de req)
Je suis venu à la conclusion que je devrais utiliser Stream en quelque sorte, mais je ne comprends pas comment ..

Comment puis-je obtenir le et ma demande web en-têtes corps avant qu'il ne soit envoyé?

Ajouté: Je veux finalement quelque chose comme:

string requestAsText= //some method that will give me the whole post text. 

Merci.

+1

utilise Fiddler pas une option? – InSane

+0

@InSane - Vous pouvez dire que j'essaie d'obtenir la sortie de Fiddler dans le code (comme valeur de chaîne) –

Répondre

2

ajouter à votre fichier de configuration et cette décharge sera à peu près toutes les communications (ce qui permet d'économiser au fichier network.log):

<system.diagnostics> 
    <sources> 
     <source name="System.Net" tracemode="includehex" maxdatasize="1024"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source> 
     <source name="System.Net.Sockets"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source> 
     <source name="System.Net.Cache"> 
     <listeners> 
      <add name="System.Net"/> 
     </listeners> 
     </source> 
    </sources> 
    <switches> 
     <add name="System.Net" value="Verbose"/> 
     <add name="System.Net.Sockets" value="Verbose"/> 
     <add name="System.Net.Cache" value="Verbose"/> 
    </switches> 
    <sharedListeners> 
     <add name="System.Net" 
     type="System.Diagnostics.TextWriterTraceListener" 
     initializeData="network.log" 
     /> 
    </sharedListeners> 
    <trace autoflush="true"/> 
    </system.diagnostics> 

http://msdn.microsoft.com/en-us/library/ty48b824.aspx

+0

Ahh .. Je ne suis pas sûr de comprendre ce que cela fait. S'il vous plaît se référer à ma mise à jour pour voir si cela fait ce dont j'ai besoin. Merci beaucoup! –

+0

Cela permettra d'enregistrer toutes les communications dans un fichier, y compris les en-têtes .... il suffit d'ajouter cela à votre fichier web.config ou app.config. – Aliostad

+0

Et comment vais-je le récupérer par code? –