我试图发送一个简单的POST请求到REST Web服务并打印响应(代码如下,主要取自Yahoo!开发人员文档和提供的一些MSDN代码片段文档)。我希望客户端发送:C#REST客户端使用POST发送数据
请求方法:POST(即我希望$ _ SERVER [ 'REQUEST_METHOD'] == 'POST' 在PHP)
数据:富=栏(即$ _ POST [ '富' ] ==在PHP '酒吧')
然而,这似乎是发送:
请求方法:FOO = BARPOST
数据:(空白)
我知道API的工作,因为我”我已经用Python和PHP编写的客户端进行了测试,所以我非常确定它必定是我的C#的一个问题。我不是一个交易的.NET程序员,所以我会很感激任何关于如何确定问题的评论/指针 - 我相信这是一件微不足道的事情,但我无法自己发现它。
uri,用户和密码变量是在代码的早期设置的 - 它们可以很好地处理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数组为空。