1       前言

http协议详解参考HTTP协议

WEB常用Get和Post请求。

地址栏参数:url为www.viwofer.com?id=12&name=viwofer则id=12&name=viwofer为地址栏参数。key1=value&key2=value2。

Json参数:{"key1":"value","key2":"value2"}。

2       GET请求

常用Get请求使用地址栏参数

        /// <summary>
/// Get获取数据
/// </summary>
/// <param name="serverUrl">服务Url</param>
/// <param name="postData">传递参数,格式如“key1=value&key2=value2”</param>
/// <returns></returns>
public static string HttpGetConnectToServer(string serverUrl, string postData = "")
{
//创建请求
var request = (HttpWebRequest)WebRequest.Create(serverUrl + "?" + postData);
request.Method = "GET";
//设置上传服务的数据格式
request.ContentType = "application/x-www-form-urlencoded";
//请求的身份验证信息为默认
request.Credentials = CredentialCache.DefaultCredentials;
//请求超时时间
request.Timeout = ;
//设置cookie
request.CookieContainer = cookie; try
{
//读取返回消息
return GetResponseAsString(request);
}
catch (Exception ex)
{
//var result = new ServerResult();
return "{\"error\":\"connectToServer\",\"error_description\":\"" + ex.Message + "\"}";
}
}

3       Post请求

常用Post请求使用地址栏参数和Json格式参数。

3.1     参数为key1=value&key2=value2

        /// <summary>
/// Post获取数据
/// </summary>
/// <param name="serverUrl">服务Url</param>
/// <param name="postData">传递参数,格式如“key1=value&key2=value2”</param>
/// <returns></returns>
public static string HttpPostConnectToServer(string serverUrl, string postData)
{
var dataArray = Encoding.UTF8.GetBytes(postData);
//创建请求
var request = (HttpWebRequest)HttpWebRequest.Create(serverUrl);
request.Method = "POST";
request.ContentLength = dataArray.Length;
//设置上传服务的数据格式
request.ContentType = "application/x-www-form-urlencoded";
//请求的身份验证信息为默认
request.Credentials = CredentialCache.DefaultCredentials;
//请求超时时间
request.Timeout = ;
//设置cookie
request.CookieContainer = cookie;
//创建输入流
Stream dataStream; try
{
dataStream = request.GetRequestStream();
}
catch (Exception)
{
return null;//连接服务器失败
}
//发送请求
dataStream.Write(dataArray, , dataArray.Length);
dataStream.Close();
//读取返回消息
//string res;
try
{
//读取返回消息
return GetResponseAsString(request);
}
catch (Exception ex)
{
//连接服务器失败
return "{\"error\":\"connectToServer\",\"error_description\":\"" + ex.Message + "\"}";
}
}

3.2     参数为{"key1":"value","key2":"value2"}

        /// <summary>
/// Post获取数据
/// </summary>
/// <param name="serverUrl">服务Url</param>
/// <param name="postData">传递参数,格式如“{"key1":"value","key2":"value2"}”</param>
/// <returns></returns>
public static string HttpPostJsonConnectToServer(string serverUrl, string postData)
{
var dataArray = Encoding.UTF8.GetBytes(postData);
//创建请求
var request = (HttpWebRequest)HttpWebRequest.Create(serverUrl);
request.Method = "POST";
request.ContentLength = dataArray.Length;
//设置上传服务的数据格式 json格式的传递参数
request.ContentType = "application/json";
//请求的身份验证信息为默认
request.Credentials = CredentialCache.DefaultCredentials;
//请求超时时间
request.Timeout = ;
//设置cookie
request.CookieContainer = cookie;
//创建输入流
Stream dataStream;
try
{
dataStream = request.GetRequestStream();
}
catch (Exception)
{
return null;//连接服务器失败
}
//发送请求
dataStream.Write(dataArray, , dataArray.Length);
dataStream.Close();
//读取返回消息
try
{
//读取返回消息
return GetResponseAsString(request);
}
catch (Exception ex)
{
//连接服务器失败
//var result = new ServerResult();
return "{\"error\":\"connectToServer\",\"error_description\":\"" + ex.Message + "\"}";
}
}

4       相关代码

        //============================初始化Cookie================================
private static CookieContainer cookie = new CookieContainer(); //==================================获取返回参数======================================
private static string GetResponseAsString(HttpWebRequest request)
{
try
{
var response = (HttpWebResponse)request.GetResponse();
var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string res = reader.ReadToEnd();
reader.Close();//关闭读取流
response.Close();//关闭响应流
return res;
}
catch (Exception ex)
{
return null;
}
}

最新文章

  1. 易懂 易上手的cookie 最简单明了 js中cookie的使用方法及教程
  2. MahApps.Metro使用
  3. Apache 创建虚拟主机目录和设置默认访问页面
  4. Qt QObject
  5. 走进java对象的门口
  6. win7 IIS7环境下部署PHP 7.0
  7. jQuery Moblie 学习之page、button、theme、panel、listview、controlgroup、navbar等(一)
  8. 用vi修改文件,保存文件时,提示“readonly option is set”的解决方法
  9. MyBatis之四:调用存储过程含分页、输入输出参数
  10. 定制一个winCE5.0操作系统
  11. 十步完全理解SQL(转)
  12. ATM取款~~
  13. Unix系统的常用信号
  14. shell 批量删除所有指定名字的目录
  15. ___Json帮助类
  16. WiFi-ESP8266入门http(1)-建立服务器,直接发送网
  17. Web三层-UI/BLL/DAL/MODEL
  18. c# zxing生成二维码和打印
  19. Unable to install SQL Server (setup.exe), VS Shell installation has failed with exit code 1638.
  20. oem 重建

热门文章

  1. Linux 文件系统属性chattr权限
  2. JSP+SSM+Mysql实现的学生成绩管理系统
  3. idea 启动命令行的时候提示不能创建PTY
  4. mac 排查被占端口
  5. 轻量级进度条 – Nprogress.js
  6. make &amp; make install(make altinstall) 因动态库gcc版本问题
  7. 05.Java面向对象
  8. mail邮件操作
  9. PyQt5入门教程
  10. (八)跑完用例后通过maven发送邮件