WP7 如何上传文件并获取服务器端回复【z】
HttpWebRequest类代码:
/// <summary> /// 发送内容 /// </summary> private byte[] bSendingFile = null; using (IsolatedStorageFileStream sendingZipStream2 = new IsolatedStorageFileStream(strZipFolderName + "/" + strZipFileName, FileMode.Open, isoStorage)) { try { // 要上传的文件 bSendingFile = new byte[sendingZipStream2.Length]; sendingZipStream2.Read(bSendingFile, 0, bSendingFile.Length); // 根据uri创建HttpWebRequest对象 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(F3StaticResource.SendNMSUrl, UriKind.Absolute)); httpReq.Method = "POST"; httpReq.ContentType = "multipart/form-data;"; IAsyncResult asyncResult = httpReq.BeginGetRequestStream(new AsyncCallback(RequestStreamCallback), httpReq); } catch(Exception ex) { String strError = ex.ToString(); } } /// <summary> /// 返回用于将数据写入Stream,写入数据,并发送 /// </summary> /// <param name="result"></param> private void RequestStreamCallback(IAsyncResult result) { HttpWebRequest request = result.AsyncState as HttpWebRequest; // 返回用于将数据写入某 URI 资源的 Stream Stream requestStream = request.EndGetRequestStream(result); requestStream.Write(bSendingFile, 0, bSendingFile.Length); requestStream.Flush(); requestStream.Close(); request.BeginGetResponse(new AsyncCallback(ResponseCallback), request); } /// <summary> /// 获取最终的返回结果 /// </summary> /// <param name="result"></param> private void ResponseCallback(IAsyncResult result) { try { HttpWebRequest request = result.AsyncState as HttpWebRequest; WebResponse response = request.EndGetResponse(result) as HttpWebResponse; if (response != null) { Stream responseStream = response.GetResponseStream(); using (StreamReader streamReader = new StreamReader(responseStream)) { String strResponese = streamReader.ReadToEnd();//返回内容 } } } catch (Exception ex) { String strError = ex.ToString(); } }