2010-08-08 92 views
0

我正在使用HTTPWebRequest向URL發送HTTP POST請求。我使用多部分/表單數據內容類型以及主體的內容長度發送發佈數據。但是,在服務器端,我無法檢索正文。我只能看到發送的標題。我發送的身體的內容長度也匹配。無法從HTTP檢索服務器端的郵件正文Post

爲什麼我無法找回身體。

請求的方法是這樣的:

public void Reset(string originalFileData, string uploadLocation) 
    { 
     TcpClient client = new TcpClient(); 
     IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse(Server), portNo); 
     client.Connect(serverEndPoint); 
     string responseContent; 
     string serverUrl = "http://" + Server + ":" + portNo + "/abc.aspx" + "?uplvar=" + uploadLocation; 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverUrl); 
     request.ContentType = "multipart/form-data"; 
     request.Method = "POST"; 
     request.ServicePoint.Expect100Continue = false; 
     string postData = originalFileData; 
     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     request.ContentLength = byteArray.Length; 
     Stream dataStream = request.GetRequestStream(); 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     response.Close(); 
    } 

編輯:我忘了求佛,我能找回身體上,我第一次發送請求,但在我發送的任何後續請求,我我無法檢索它。我每次發送請求時都會創建一個新連接。所以,可能會阻止請求主體被重新定義。我不知道爲什麼。

+2

注意:您的TcpClient代碼在開始時與其餘部分無關。 – 2010-08-08 19:05:15

回答

0

嘗試

request.ContentType = "application/x-www-form-urlencoded"; 

或查看SO answer更換

request.ContentType = "multipart/form-data"; 

用於與多/ FORMDATA運行的代碼。

+0

我試過這種方法。它沒有工作。我在最後對原始問題進行了編輯。這可能有助於進一步澄清。謝謝。 – gofeddy 2010-08-08 18:49:53

+1

然後,我會啓動提琴手,看看通過第一個和第二個請求的電線,並比較它們。 – 2010-08-08 19:06:48

相關問題