123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- 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
- {
- /// <summary>
- /// Get方式提交数据
- /// </summary>
- /// <param name="methodname"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// Post方式提交数据
- /// </summary>
- /// <param name="url"></param>
- /// <param name="body"></param>
- /// <returns></returns>
- 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();
- }
- }
- /// <summary>
- /// http Post请求 发送Json数据
- /// </summary>
- /// <param name="url"></param>
- /// <param name="postData"></param>
- /// <param name="headht"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// Get 方法
- /// </summary>
- /// <param name="url"></param>
- /// <param name="accessToken">Headers 中的秘钥</param>
- /// <returns></returns>
- 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();
- }
- /// <summary>
- /// Json解析
- /// </summary>
- /// <param name="result"></param>
- /// <returns></returns>
- public string[] jsons(string result)
- {
- JObject jo = JObject.Parse(result);
- string[] values1 = jo.Properties().Select(item => item.Value.ToString()).ToArray();
- return values1;
- }
- }
- }
|