1
我们正在将我们的解决方案之一移植到PCL中,但面临着许多关于.NET框架基类库支持的类和属性的问题。为了在不同的平台上运行相同的功能,我们实现了WebClient,但是我们在WebRespornce类中看不到状态代码属性。便携式类库WebResponse StatusCode缺少
在我发布代码示例之前,让我强调一下我们目前针对的平台。
框架版本是4.5 我们的目标平台是; Windows 8(RT) Windows 7/8与WPF应用程序。
这里是我们使用云计算,但没有找到StatusCode属性里面WebResponce
private static byte[] ReadStreamFromResponce(WebResponse result)
{
using (var responseStream = result.GetResponseStream())
using (var ms = new MemoryStream())
{
if (responseStream != null) responseStream.CopyTo(ms);
return ms.ToArray();
}
}
private static Task<byte[]> MakeAsyncRequest(string requestString)
{
var request = (HttpWebRequest)WebRequest.Create(requestString);
Task<WebResponse> requestTask = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => request.EndGetResponse(asyncResult),
null);
return requestTask.ContinueWith(t => ReadStreamFromResponce(t.Result));
}
A已经添加了另一种方法,我实际上正在创建并启动WebRequest。我必须改变那里的东西吗? –
@Rati_Ge你可能只需要施放它;它可能是* typed *作为'WebRequest',但它可能实际上*是* HttpWebRequest'。 –
由'HttpWebRequest'返回的'WebRequest'将是'HttpWebResponse',所以你可以安全地投射到它。就像'return requestTask.ContinueWith(t => ReadStreamFromResponce((HttpWebResponse)t.Result);' – carlosfigueira