我正在尝试向REST Web服务发送简单的POST请求并打印响应(代码如下,大部分取自Yahoo!开发人员文档和MSDN代码片段)。 我期望客户端发送以下内容:
请求方式:POST(即我期望在PHP中$_SERVER ['REQUEST_METHOD'] == 'POST')
数据:foo = bar(即在PHP中$_POST ['foo'] == 'bar')
然而,它似乎发送了以下内容:
请求方式:FOO = BARPOST
数据:(空白)
我知道API可以正常工作,因为我已经使用Python和PHP编写的客户端进行了测试,所以我相当确定问题出在我的C#上。 我不是一名.NET程序员,因此希望得到关于如何找出问题的任何评论/提示 - 我相信这是一些微不足道的问题,但我自己无法发现。 uri、user和password变量在代码前面设置 - 它们与GET请求一起正常工作。
请求方式:POST(即我期望在PHP中$_SERVER ['REQUEST_METHOD'] == 'POST')
数据:foo = bar(即在PHP中$_POST ['foo'] == 'bar')
然而,它似乎发送了以下内容:
请求方式:FOO = BARPOST
数据:(空白)
我知道API可以正常工作,因为我已经使用Python和PHP编写的客户端进行了测试,所以我相当确定问题出在我的C#上。 我不是一名.NET程序员,因此希望得到关于如何找出问题的任何评论/提示 - 我相信这是一些微不足道的问题,但我自己无法发现。 uri、user和password变量在代码前面设置 - 它们与GET请求一起正常工作。
request = (HttpWebRequest) WebRequest.Create(uri);
request.Credentials = new NetworkCredential(user, password);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
string postData = "foo=bar";
request.ContentLength = postData.Length;
StreamWriter postStream = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
postStream.Write(postData);
postStream.Close();
response = (HttpWebResponse) request.GetResponse();
REST API 是用 PHP 编写的,使用 C# 客户端时,服务器上的 $_POST 数组为空。