文章内容

2017/11/2 16:14:28,作 者: 黄兵

await GetResponseAsync()

await GetResponseAsync() 示例代码:

using System;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

namespace BlogAppCore.Common
{
public class HttpRequest
{
/// <summary>
/// 后台发送POST请求
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="data">发送的数据</param>
/// <returns></returns>
public async static Task<string> HttpPost(string url, string data)
{
try
{
//创建post请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
byte[] payload = Encoding.UTF8.GetBytes(data);
request.ContentLength = payload.Length;

//发送post的请求
Stream writer = request.GetRequestStream();
writer.Write(payload, 0, payload.Length);
writer.Close();

//接受返回来的数据
var response =(HttpWebResponse)(await request.GetResponseAsync());
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string value = reader.ReadToEnd();

reader.Close();
stream.Close();
response.Close();

return value;
}
catch (Exception)
{
return "";
}
}

/// <summary>
/// 后台发送GET请求
/// </summary>
/// <param name="url">服务器地址</param>
/// <param name="data">发送的数据</param>
/// <returns></returns>
public async static Task<string> HttpGet(string url, string data)
{
try
{
//创建Get请求
url = url + (data == "" ? "" : "?") + data;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";

//接受返回来的数据
HttpWebResponse response = (HttpWebResponse)(await request.GetResponseAsync());
Stream stream = response.GetResponseStream();
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
string retString = streamReader.ReadToEnd();

streamReader.Close();
stream.Close();
response.Close();

return retString;
}
catch (Exception)
{
return "";
}
}
}
}

参考资料:

Deadlock when using await GetResponseAsync()

黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - await GetResponseAsync()

分享到:

发表评论

评论列表