我有一个使用python编写的开发机器上的Web服务。我试图通过服务器端使用asp.net访问所述web服务。 webservice已经过测试,可以在其他所有实例中使用。但是当我通过asp.net使用post方法点击它时,asp.net似乎根本没有将post值发送到webservice,其他一切都被正常发送。如果我在控制台应用程序中运行完全相同的代码,一切都可以正常运行。
using System;
using System.IO;
using System.Net;
using System.Web;
using System.Text;
class WebService {
static public String GetContent(String user_id, String content_id) {
Uri address = new Uri("http://url.to.api/");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
String response_text = String.Empty;
// Set type to POST
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Credentials = new NetworkCredential("username", "password");
string data = string.Format("userid={0}&contentid={1}", user_id, content_id);
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = byteData.Length;
using (Stream postStream = request.GetRequestStream()) {
postStream.Write(byteData, 0, byteData.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
StreamReader reader = new StreamReader(response.GetResponseStream());
response_text = reader.ReadToEnd();
}
return response_text;
}
}
此外,我们已经检查了返回的信息和第四,并且webservice永远不会看到发布数据...这个代码在控制台应用程序和asp.net项目中运行都打到了webservice,都获得了响应。控制台获得一个响应,其中包含有效信息,表明它正在运行,asp.net项目运行并接收并且错误表明没有传递userid。我们有许多其他网站在没有问题的情况下点击这个网络服务,除非用asp.net编写。
答案 0 :(得分:0)
使用Fiddler等代理查看您的应用与网络服务之间的HTTP交易。这应该可以让您更好地了解错误的终点及其性质。
您可以考虑针对测试“Hello World”服务运行此操作,以测试通信。
另外,发布您的真实代码。如果你愿意,可以更改uri,但是你上面引用的内容将无法编译。问题可能在这个片段之外。
<强>更新强>
您收到回复需要多长时间?超时?耗尽连接?