HttpWebRequest将参数传递给WebService [英] HttpWebRequest pass parameters to WebService
本文介绍了HttpWebRequest将参数传递给WebService的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个需要将数据传递到Web服务(SMS)的网页,并且尝试使用WebRequest进行此工作,但是当我使用此类时,会出现以下错误:
在写入所有字节之前无法关闭流
在此行之后的行中:
stOut.WriteLine(strNewValue,number,text);
问题是什么?我尝试使用Flush(),但也无法正常工作
I have a webpage that need to pass data to web Service (SMS) and I tried to use WebRequest to do this work but when I use this class the following error appears:
Cannot close stream until all bytes are written
in the line after this line :
stOut.WriteLine(strNewValue,number,text);
What is the problem? I tried to use Flush() but didn''t work either
public class SendSms
{
public SendSms(string number, string text)
{
string strNewValue;
string strResponse;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.buymessage.com/ostazSms/send.php");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
strNewValue = "usr=****&pwd=*****&to={0}&msg={1}";
req.ContentLength = strNewValue.Length;
using(StreamWriter stOut = new StreamWriter (req.GetRequestStream(), System.Text.Encoding.Unicode))
{
stOut.WriteLine(strNewValue,number,text);
}
StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
strResponse = stIn.ReadToEnd();
stIn.Close();
}
}
推荐答案
尝试以下代码:
Try the code below:
public class SendSms
{
public SendSms(string number, string text)
{
string strNewValue;
string strResponse;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.buymessage.com/ostazSms/send.php");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
strNewValue = "usr=****&pwd=*****&to={0}&msg={1}";
byte[] byteArray = Encoding.UTF8.GetBytes(string.Format(strNewValue,number, text));
req.ContentLength = byteArray.Length;
Stream dataStream = req.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
try
{
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader SR = new StreamReader(dataStream, Encoding.Unicode);
strResponse = SR.ReadToEnd();
response.Close();
dataStream.Close();
SR.Close();
req.Abort();
}
catch {req.Abort();}
}
}
这篇关于HttpWebRequest将参数传递给WebService的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文