在asp.net中发布到Web服务的问题

时间:2010-02-16 18:39:18

标签: asp.net web-services

我有一个使用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;
    }
}
  • 使用或多或少的类更新了*。 “url,user / pass”。

此外,我们已经检查了返回的信息和第四,并且webservice永远不会看到发布数据...这个代码在控制台应用程序和asp.net项目中运行都打到了webservice,都获得了响应。控制台获得一个响应,其中包含有效信息,表明它正在运行,asp.net项目运行并接收并且错误表明没有传递userid。我们有许多其他网站在没有问题的情况下点击这个网络服务,除非用asp.net编写。

1 个答案:

答案 0 :(得分:0)

使用Fiddler等代理查看您的应用与网络服务之间的HTTP交易。这应该可以让您更好地了解错误的终点及其性质。

您可以考虑针对测试“Hello World”服务运行此操作,以测试通信。

另外,发布您的真实代码。如果你愿意,可以更改uri,但是你上面引用的内容将无法编译。问题可能在这个片段之外。

<强>更新

您收到回复需要多长时间?超时?耗尽连接?