wp8 使用http post 返回NotFound

txwdyyy001 2014-04-18 05:39:12
一直用的HttpWebRequest的方法post,原来都没有问题。
最近一个项目有个接口需要大概90秒左右才能返回数据。
但测试在60左右就会报notfound的错误。换了一个http类库System.Net.Http同样60秒左右这个接口会返回404.
但是在winform中用同样的代码发送同样的数据,可以正常返回。HttpWebRequest在wp上是2.0的在winForm上是4.0版本的。
请帮忙分析一下问及提供一些解决思路,谢谢。

下面为代码

/// <summary>
/// POST数据
/// </summary>
/// <param name="strData">要POST的数据</param>
public void PostHttpWebRequest(string strData)
{
strMethod = "POST";
strSendData = strData;

webRequest = HttpWebRequest.Create(mUrl);
webRequest.Method = strMethod;
//webRequest.ContentType = "multipart/form-data";
//webRequest.UseDefaultCredentials = true;

var resBeginSend = (IAsyncResult)webRequest.BeginGetRequestStream(RequestSendCallback, webRequest);
}

/// <summary>
/// GET数据
/// </summary>
public void GetHttpWebRequest()
{
strMethod = "GET";
webRequest = HttpWebRequest.Create(mUrl);
webRequest.Method = strMethod;

// get 方法直接到Response函数
var resBeginSend = (IAsyncResult)webRequest.BeginGetResponse(MYTestResponseCallback, webRequest);
}

/// <summary>
/// Post方式返回数据响应
/// </summary>
/// <param name="result"></param>
private void RequestSendCallback(IAsyncResult result)
{
try
{
var request = (HttpWebRequest)result.AsyncState;
request.ContentType = "multipart/form-data";
var data = encode.GetBytes(strSendData);
Stream newStream = request.EndGetRequestStream(result);
newStream.Write(data, 0, data.Length);
newStream.Close();
var resGetResp = (IAsyncResult)request.BeginGetResponse(MYTestResponseCallback, request);
}
catch (Exception ex)
{ }
}

public void MYTestResponseCallback(IAsyncResult result)
{
try
{
var request = (HttpWebRequest)result.AsyncState;
var response = request.EndGetResponse(result);

WebHeaderCollection webHeader = response.Headers;
using (var stream = response.GetResponseStream())
{
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
string str = sr.ReadToEnd();
sr.Close();
YYYDebug.Write("返回的数据信息:", str);

//HNetResultEventArgs ee = new HNetResultEventArgs(str);
//CompleteDataEventHandler(this, ee);

System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
HNetResultEventArgs ee = new HNetResultEventArgs(str);
CompleteDataEventHandler(this, ee);
//DownloadStringCompleted(this, new DownloadStringCompletedEventArgs(result));
});
done.Set();
}
}
catch (System.Exception e)
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate()
{
string dd = e.Message;
//HNetResultEventArgs ee = new HNetResultEventArgs(str);
//CompleteDataEventHandler(this, ee);
//DownloadStringCompleted(this, new DownloadStringCompletedEventArgs(result));
});
}
}
...全文
742 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyue20075 2014-04-24
  • 打赏
  • 举报
回复
有可能是超时问题
txwdyyy001 2014-04-24
  • 打赏
  • 举报
回复
自己顶一下吧
  • 打赏
  • 举报
回复
学习,帮顶。
shanquanshui628962 2014-04-19
  • 打赏
  • 举报
回复
我之前做过文件上传,WebClient,HttpWebRequest,方法也是抱着个错,只要用到http上传功能,都回抱着个错,我现在也没有解决,顶一个,请高手解决。
gnimgnot 2014-04-18
  • 打赏
  • 举报
回复
write之后调用一个flush试试

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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