废话不多,直接上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net;
using System.IO;
using System.Text;
using System.Reflection;
using System.Collections.Specialized;
public class TestDataMall : MonoBehaviour
{
static string URL = "http://*************************************";
private void Start()
{
HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(URL);
SetHeaderValue(http.Headers, "AccountKey", "******************");
SetHeaderValue(http.Headers, "accept", "application/json");
http.Method = "GET";
//http.ContentType = "application/json";
//http.Accept = "application/json";
//http.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = (HttpWebResponse)http.GetResponse();
Stream mResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(mResponseStream);
string returnStr = myStreamReader.ReadToEnd();
File.WriteAllText(@"E:\DataMall.txt", returnStr, Encoding.UTF8);
myStreamReader.Close();
mResponseStream.Close();
myStreamReader.Dispose();
mResponseStream.Dispose();
if (response!=null)
{
response.Close();
}
if (http!=null)
{
http.Abort();
}
Debug.Log("返回的json读取:"+returnStr);
}
//这里利用反射做了类型转换,并给报头赋值
public static void SetHeaderValue(WebHeaderCollection headers,string name,string value)
{
var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", BindingFlags.Instance | BindingFlags.NonPublic);
if (property!=null)
{
var collection = property.GetValue(headers, null) as NameValueCollection;
collection[name] = value;
}
}
}