[英]HttpWebRequest pass parameters to WebService
我有一个需要将数据传递到Web服务(SMS)的网页,并且尝试使用WebRequest
进行此工作,但是当我使用此类时,会出现以下错误:
Cannot close stream until all bytes are written
在此行之后的行中:
stOut.WriteLine(strNewValue,number,text);
问题是什么? 我试图使用Flush()
但也没有用
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();
}
}
您的问题是您调用WriteLine
,它可能不会发送所有数据。
这是一个编码帖子数据并将其全部发送的代码段:
string strNewValue = string.Format("usr=****&pwd=*****&to={0}&msg={1}", "A", "B");
byte[] byteArray = Encoding.UTF8.GetBytes (strNewValue);
req.ContentLength = byteArray.Length;
using (Stream dataStream = req.GetRequestStream ()) {
dataStream.Write (byteArray, 0, byteArray.Length);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.