0

我有以下POST要求:

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) Method not supported

显然在服务器上工作的示例 XML 是相同的,但标题有行POST /Request HTTP/1.1而不是POST http://blah/Request HTTP/1.1.

我不知道这是否是问题,但我正在努力消除所有可能性。但是,我无法让POST请求 URI 是相对的而不是绝对的。有没有办法做到这一点?

以下是用于发送 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

4

1 回答 1

0

以下HTTP 错误 405 方法不允许

POST 方法经常会出现 405 错误。您可能试图在网站上引入某种输入表单,但并非所有 ISP 都允许处理表单所需的 POST 方法。

所有 405 错误都可以追溯到 Web 服务器的配置和管理对网站内容的访问的安全性,因此您的 ISP 应该很容易解释。

于 2012-04-05T14:29:13.087 回答