WinCE5.0上使用HttpWebRequest类遇到的问题

hunterxx 2006-04-22 05:00:10
使用C#在VS.net 2005开发的应用程序。用手持机无线上网后,到网页上自动提交数据,代码如下:

private bool Submit()
{
string uriString="http://***********************";
string postData="message.content=test&id=4a4ba0b30649436501064950a7fb0006";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] bytePostData = encoding.GetBytes(postData);

HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(uriString);
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.Method = "post";
myRequest.ContentLength = postData.Length;

Stream outStream = myRequest.GetRequestStream();
outStream.Write(bytePostData, 0, bytePostData.Length);
outStream.Close();
}

这段代码做成Windows的应用程序,在PC上能成功提交数据,并且服务器上也能查到。但做成WinCE的应用程序放到设备上后,虽然能成功运行,但服务器上却查不到提交的数据。不知道是程序的问题,还是手持机上网设置的问题?(因为测试手持机的时候还没有无线网卡,所以设备是通过Console口和PC连接,WinCE中的IE也能正常上网打开网页。)

小弟第一次做手持机的开发,恳请各位高手指点迷津,在此先谢过了。
...全文
617 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunterxx 2006-05-10
  • 打赏
  • 举报
回复
恩,我看看去
yajyjy 2006-05-10
  • 打赏
  • 举报
回复
可能是unicode的问题
调试一下你的代码吧
hunterxx 2006-05-10
  • 打赏
  • 举报
回复
还有谁能帮帮忙啊……
hunterxx 2006-04-26
  • 打赏
  • 举报
回复
到现在都没有解决,等待啊……
ynnwq 2006-04-22
  • 打赏
  • 举报
回复
应该是encoding的问题,CE上应该使用Unicode
hunterxx 2006-04-22
  • 打赏
  • 举报
回复
我又重新修改了一下代码,如下:

private Submit()
{
string uriString="http://***********************";
string postData="message.content=test&id=4a4ba0b30649436501064950a7fb0006";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] bytePostData = encoding.GetBytes(postData);

HttpWebRequest myRequest = null;
try
{
myRequest = (HttpWebRequest)WebRequest.Create(uriString);
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.Method = "post";
myRequest.ContentLength = postData.Length;
}
catch (SecurityException e)
{
MessageBox.Show(e.Message);
}

try
{
Stream outStream = myRequest.GetRequestStream();
outStream.Write(bytePostData, 0, bytePostData.Length);
outStream.Close();
}
catch (WebException e)
{
MessageBox.Show(e.Message);
}
catch (IOException e)
{
MessageBox.Show(e.Message);
}

//Get Response
StreamReader strReader = null;

try
{
HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse();
Stream inStream = response.GetResponseStream();
strReader = new StreamReader(inStream,System.Text.Encoding.GetEncoding("GB2312"));
}
catch (WebException e)
{
MessageBox.Show("ResponseErrMessage:"+e.Message );
MessageBox.Show("ResponseErrResponse:" + e.Response );
MessageBox.Show("ResponseErrStackTrace:" + e.StackTrace );
}
string strReaderLine = "";
try
{
StreamWriter sw = new StreamWriter("ResponseFile.txt");
while (strReaderLine != null)
{
strReaderLine = strReader.ReadLine();
if (strReaderLine != null)
sw.WriteLine(strReaderLine);
}
sw.Close();
MessageBox.Show("Make file success!");
}
catch (IOException e)
{
MessageBox.Show("File err!" + e.Message);
}
}

同样在PC上能运行成功,且接受到响应的html。
但在手持机上发生以下错误:
“ResponseErrMessage:无法显示错误消息,原因是无法找到包含此错误信息的可选资源程序集”
“ResponseErrResponse:System.Net.HttpWebResponse”
"ResponseErrStackTrace:位于System.Net.HttpWebRequest.finishGetResponse()
位于System.Net.HttpWebRequest.GetResponse()………………"

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧