using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace WebApplication.Controllers
{
public class WebApi
{
///
/// Get方式提交数据
///
///
///
public object retObject(string methodname)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(methodname);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
var retObject = (JObject)JsonConvert.DeserializeObject(retString);
return retObject;
}
///
/// Post方式提交数据
///
///
///
///
public string HttpPost(string url, string body, string accessToken)
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
//request.Accept = "text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
///
/// http Post请求 发送Json数据
///
///
///
///
///
public string PostJson(string url, string postData, Hashtable headht = null)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
request.UserAgent = "www.qq.cc/WebRequest";
request.Accept = "application/json";
#region headers设置
if (headht != null)
{
foreach (DictionaryEntry item in headht)
{
request.Headers.Add(item.Key.ToString(), item.Value.ToString());
}
}
#endregion
byte[] paramJsonBytes;
paramJsonBytes = System.Text.Encoding.UTF8.GetBytes(postData);
request.ContentLength = paramJsonBytes.Length;
Stream writer;
try
{
writer = request.GetRequestStream();
}
catch (Exception e)
{
writer = null;
Console.Write("连接服务器失败!");
}
writer.Write(paramJsonBytes, 0, paramJsonBytes.Length);
writer.Close();
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse;
}
Stream resStream = response.GetResponseStream();
StreamReader reader = new StreamReader(resStream);
string text = reader.ReadToEnd();
return text;
}
///
/// Get 方法
///
///
/// Headers 中的秘钥
///
public string HttpGet(string url ,string accessToken)
{
string result = string.Empty;
HttpWebRequest reqS = (HttpWebRequest)WebRequest.Create(url);
reqS.Method = "GET";
//添加请求头
reqS.Headers.Add("x-acs-dingtalk-access-token",accessToken);
reqS.ContentType = "application/json; charset=utf-8";
HttpWebResponse resS = (HttpWebResponse)reqS.GetResponse();
Stream myResponseStream = resS.GetResponseStream();
StreamReader streamReader = new StreamReader(myResponseStream);
result = streamReader.ReadToEnd();
streamReader.Close();
myResponseStream.Close();
// 解析返回的json数据(使用 jobject)
JObject theResult = (JObject)JsonConvert.DeserializeObject(result);
return theResult.ToString();
}
///
/// Json解析
///
///
///
public string[] jsons(string result)
{
JObject jo = JObject.Parse(result);
string[] values1 = jo.Properties().Select(item => item.Value.ToString()).ToArray();
return values1;
}
}
}