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