0
我有以下POST
請求:在HTTP POST頭相對改變絕對URI
POST http://blah/Request HTTP/1.1
Host: blah
Content-Length: 322
Proxy-Connection: Keep-Alive
<?xml version="1.0"?>
<Envelope>
<Header>
<UserID>uid</UserID>
<Password>pass</Password>
<SessionID />
<RequestType>GetDetails</RequestType>
<POSCompany>01</POSCompany>
<PackageType>DATA</PackageType>
<ActionType>READ</ActionType>
<SnoopUserID />
</Header>
<Body>
<MagicNumber>124</MagicNumber>
</Body>
</Envelope>
這是用錯誤失敗 - (405)不支持
示例XML這顯然適用於方法服務器是相同的,但標題有POST /Request HTTP/1.1
而不是POST http://blah/Request HTTP/1.1
。
我不知道這是否是問題,但我試圖消除所有可能性。但是,我無法獲得POST
請求URI是相對的而不是絕對的。有沒有可以做這個的wat?
以下是用於發送XML的代碼。
Public Sub SendXML(ByVal file As String)
Dim reader As New StreamReader(file)
Dim data As String = reader.ReadToEnd()
reader.Close()
Dim request As HttpWebRequest = WebRequest.Create("http://blah/Request")
request.Method = "POST"
System.Net.ServicePointManager.Expect100Continue = False
Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
request.ContentLength = bytes.Length
Dim oStreamOut As Stream = request.GetRequestStream()
oStreamOut.Write(bytes, 0, bytes.Length)
oStreamOut.Close()
Dim response As HttpWebResponse = request.GetResponse()
End Sub
這裏問響應於請求在405 - Method Not Allowed HttpWebRequest
正如我上面所說,我已經提供了一個文件,可以工作和_apparently_第三方服務器不接受POST請求。 – anothershrubery 2012-04-05 14:33:28
標記爲答案,因爲我們給服務器提供了錯誤的IP地址,它被設置爲接受來自我們母公司的POST請求,而不是我們自己。無數次他們證實我們正在使用正確的IP,直到最終他們意識到這是錯誤的。 – anothershrubery 2012-04-17 08:36:40