HttpWebRequest不工作,尽管纯web服务URL可以工作

本文关键字:工作 服务 URL web HttpWebRequest | 更新日期: 2023-09-27 18:27:12

我使用C#调用一个web服务,我使用HttpWebRequest调用该服务,当我运行代码时没有错误,一切都按预期工作,尽管响应总是0。

网络服务应该返回帐户余额,我正在发送正确的参数,即用户名和密码。

在调试代码时,如果我复制服务的URL和发布的参数并将它们粘贴到浏览器中,我会得到正确的响应,但来自C#的请求不起作用。

这是代码:

public string sInvokeService()
{
    string sPostData = "userName=testITG&userPassword=MyPassword&By=nour";
    string sURL = "http://mobile.net.sa/sms/gw/Credits.php";
    HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(sURL);
    oRequest.Method = "POST";
    oRequest.ContentType = "application/x-www-form-urlencoded";
    oRequest.ContentLength = sPostData.Length;
    string sResponse = String.Empty;
    try
    {
         StreamWriter oStreamWriter = new StreamWriter(oRequest.GetRequestStream(), System.Text.Encoding.ASCII);
        oStreamWriter.Write(sPostData);
        oStreamWriter.Close();
        StreamReader oStreamReader = new StreamReader(oRequest.GetResponse().GetResponseStream());
        sResponse = oStreamReader.ReadToEnd();
        oStreamReader.Close();
    }
    finally
    {
    }
    return sResponse;
}

p.S:正如我所说,如果我复制URL和参数并直接粘贴到浏览器中(http://mobile.net.sa/sms/gw/Credits.php?userName=testITG&userPassword=我的密码&By=nour),我得到的回答是"10",这是正确的。

我想知道我是否做错了什么,尽管我用同样的代码调用了服务器上的另一个web服务,它运行得很好。

如有任何帮助,我们将不胜感激。

HttpWebRequest不工作,尽管纯web服务URL可以工作

问题是,当您在浏览中粘贴url时,它会发出GET请求,而不是POST。您需要指定该方法是post,并在url上传递您的凭据(这必须是usrl:http://mobile.net.sa/sms/gw/Credits.php?serName=testITG&userPassword=我的密码&By=nour)。