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服务,它运行得很好。
如有任何帮助,我们将不胜感激。
问题是,当您在浏览中粘贴url时,它会发出GET请求,而不是POST。您需要指定该方法是post,并在url上传递您的凭据(这必须是usrl:http://mobile.net.sa/sms/gw/Credits.php?serName=testITG&userPassword=我的密码&By=nour)。