Http是我们用的比较多的网络连接方式,它一般分为Get和Post两种,一种不传参、另一种传参。用到的库文件为:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Reflection;
其中Get连接方式:
public int HttpGet(string url, out string reslut)
{
reslut = "";
try
{
HttpWebRequest _req = (HttpWebRequest)WebRequest.Create(url);
_req.Proxy = null;
_req.Method = "GET";
_req.Headers.Add("Authorization", ReadWrite.Inst.Authorization.Read());
HttpWebResponse wbResponse = (HttpWebResponse)_req.GetResponse();
using (Stream responseStream = wbResponse.GetResponseStream())
{
using (StreamReader sReader = new StreamReader(responseStream))
{
reslut = sReader.ReadToEnd();
}
}
}
catch (Exception e)
{
reslut = e.Message; //输出捕获到的异常,用OUT关键字输出
return -1; //出现异常,函数的返回值为-1
}
return 0;
}
Post连接方式为:
public int HttpPost(string url, string sendData, out string reslut)
{
reslut = "";
try
{
byte[] data = Encoding.UTF8.GetBytes(sendData);
HttpWebRequest _req = (HttpWebRequest)WebRequest.Create(url); // 制备web请求
_req.Proxy = null; //现场测试注释掉也可以上传
_req.Method = "POST";
_req.ContentType = "application/json";
_req.ContentLength = data.Length;
_req.Timeout = 5000;//设置请求超时时间,单位为毫秒
_req.Headers.Add("Authorization", ReadWrite.Inst.Authorization.Read());
using (Stream wStream = _req.GetRequestStream()) //using(){}作为语句,用于定义一个范围,在此范围的末尾将释放对象。
{
wStream.Write(data, 0, data.Length);
}
//获取响应
HttpWebResponse wbResponse = (HttpWebResponse)_req.GetResponse();
using (Stream responseStream = wbResponse.GetResponseStream())
{
using (StreamReader sReader = new StreamReader(responseStream, Encoding.UTF8)) //using(){}作为语句,用于定义一个范围,在此范围的末尾将释放对象。
{
reslut = sReader.ReadToEnd();
}
}
//分析响应报文
}
catch (Exception e)
{
reslut = e.Message; //输出捕获到的异常,用OUT关键字输出
return -1; //出现异常,函数的返回值为-1
}
return 0;
}