zoukankan      html  css  js  c++  java
  • C# 后台Http访问 raw from 键值对

    using RestSharp;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Quotation.Common.Extensions
    {
    
    
    public class HttpRequstExtensions
    {
    
    
    /// <summary>
    /// 参数
    /// </summary>
    /// <param name="url"></param>
    /// <param name="data"></param>
    /// <returns></returns>
    public static string httpPostAsync(string url, List<KeyValuePair<string, string>> data)
    {
            HttpClient client = new HttpClient();
            var form_data = new FormUrlEncodedContent(data);
            var reponse = client.PostAsync(url, form_data);
            if (reponse.IsCompleted)
            {
                  var result = reponse.Result;
                  var resdata = result.Content.ReadAsStringAsync();
                  return resdata.ToString();
            }
            return "";
    }
    
    
    /// <summary>
    /// 发送Get请求,获取内容
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    public static string HttpGet(string url)
    {
             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
             request.Credentials = CredentialCache.DefaultCredentials;
             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
             Stream receiveStream = response.GetResponseStream();
             StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
             string text = readStream.ReadToEnd();
             response.Close();
             readStream.Close();
             return text;
    }
    
    
    /// <summary>
    /// Post请求
    /// </summary>
    /// <param name="url"></param>
    /// <param name="pars"></param>
    /// <returns></returns>
    public static string HttpPost(string url, string pars, string contentType = "")
    {
              byte[] bytes = Encoding.UTF8.GetBytes(pars);
              HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
              request.Method = "POST";
              request.ContentLength = bytes.Length;
              //request.ContentType = "text/xml";
              if (!string.IsNullOrEmpty(contentType))
                    request.ContentType = contentType;
              request.Credentials = CredentialCache.DefaultCredentials;
    
              //Stream writer = request.GetRequestStream();
              //writer.Write(bytes, 0, bytes.Length);
              //writer.Close();
    
              HttpWebResponse response = (HttpWebResponse)request.GetResponse();
              Stream receiveStream = response.GetResponseStream();
              StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
              string text = readStream.ReadToEnd();
              response.Close();
              readStream.Close();
              return text;
    }
    
    
    /// <summary>
    /// 1.1公用 from 键值对,固定参数
    /// </summary>
    /// <param name="url"></param>
    /// <param name="promotionId"></param>
    /// <param name="resultCode"></param>
    /// <param name="resultDesc"></param>
    /// <returns></returns>
    public static string RestSharpPost(string url, string promotionId, int resultCode, string resultDesc)
    {
               RestClient client = new RestClient(url);
               RestRequest request = new RestRequest(Method.POST);
               request.AddParameter("promotionId", promotionId);
               request.AddParameter("resultCode", resultCode);
               request.AddParameter("resultDesc", resultDesc);
               IRestResponse response = client.Execute(request);
               if (response.StatusCode == HttpStatusCode.OK)
               {
                      return response.Content;
               }
               else
               {
                      return response.ErrorException.StackTrace;
               }
    }
    
    
    /// <summary>
    /// 1.2公用 from 键值对
    /// </summary>
    /// <param name="url"></param>
    /// <param name="ht"></param>
    /// <returns></returns>
    public static string RestSharpPost(string url, Hashtable ht)
    {
               RestClient client = new RestClient(url);
               RestRequest request = new RestRequest(Method.POST);
               if (ht != null && ht.Count > 0)
               {
                       foreach (DictionaryEntry de in ht)
                       {
                                request.AddParameter(de.Key.ToStr(), de.Value);
                       }
               }
               IRestResponse response = client.Execute(request);
               if (response.StatusCode == HttpStatusCode.OK)
               {
                        return response.Content;
               }
               else
               {
                        return response.ErrorException.StackTrace;
               }
    }
    
    /// <summary>
    /// 1.3公用raw 推荐使用
    /// </summary>
    /// <param name="url"></param>
    /// <param name="data">json 字符串</param>
    /// <returns></returns>
    public static string RestSharpPostRaw(string url, string data)
    {
               RestClient client = new RestClient(url);
               RestRequest request = new RestRequest(Method.POST);
               if (!string.IsNullOrEmpty(act))
               {
                          request.AddHeader("content-type", "application/json");
                          request.AddParameter("application/json", data, ParameterType.RequestBody);
               }
    
               IRestResponse response = client.Execute(request);
               if (response.StatusCode == HttpStatusCode.OK)
               {
                          return response.Content;
               }
               else
               {
                          return response.ErrorException.StackTrace; //异常信息返回
               }
    }
    
     
    
    调用   Raw
    
    string ret= "";
    string url= "https://www.xxxx.com/index/update";
    
    //对象参数
    
    var data = new { shopId="你好1", grossProfit = "你好2", rebate = "你好3"};
    
    try
    {
              //第一种方法调用Raw
              ret = HttpRequstExtensions.RestSharpPostRaw(url, data.ToJson());
    
              //第二种方法调用Raw
              //ret = HttpRequstExtensions.HttpPost(url, data.ToJson(), "application/json");
    
    }
    catch
    {
    
    }
    
     
    
    //json  反 json string字符串
    
    public static string ToJson(this object obj)
    {
               var json = string.Empty;
               try
               {
                  var jSetting = new JsonSerializerSettings { ContractResolver = new NullToEmptyStringResolver(), DateFormatString = "yyyy-MM-dd HH:mm:ss" };
                  json = JsonConvert.SerializeObject(obj, jSetting);
               }
               catch
               {
                  return json;
               }
               return json;
    }
    
     
    
    /// <summary>
    /// json转对象忽略大小写
    /// </summary>
    /// <typeparam name="T">对象类型</typeparam>
    /// <param name="json"></param>
    /// <returns></returns>
    public static T ToObject<T>(this string json) where T : new()
    {
               try
               {
                     if (string.IsNullOrEmpty(json))
                         return new T();
                     return JsonConvert.DeserializeObject<T>(json);
               }
               catch (Exception ex)
               {
                    return new T();
               }
    }
    
     
    
    }}
  • 相关阅读:
    PHP03
    PHP02
    CentOS7安装GeoServer
    uDig配图与GeoServer添加Style
    udig下载、安装及汉化
    Intellij热部署插件JRebel
    IDEA中Lombok插件的安装与使用
    IEDA 自动生成类注释和方法注释
    Elasticsearch中text与keyword的区别
    Elastic search 7.X 去掉了type的原因
  • 原文地址:https://www.cnblogs.com/chxl800/p/6837094.html
Copyright © 2011-2022 走看看