restsharp 并发请求_JAVA应用

restsharp 并发请求_JAVA应用C#RestSharp应用开通博客是想将自己所学的东西记录下来,以便自己查缺补漏,希望自己能坚持下去正题关于RestSharp的使用下载NuGet直接搜索即可,最新版本RestSharp需要.netframework4.5.2及以上支持Json序列化工具:Newtonsoft.Json,直接由NuGet下载官网说明:varclient=newRestClient(“http://ex…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

C# RestSharp应用

开通博客是想将自己所学的东西记录下来,以便自己查缺补漏,希望自己能坚持下去

正题关于RestSharp的使用

下载

NuGet直接搜索即可,最新版本RestSharp需要.net framework 4.5.2及以上支持

Json序列化工具:Newtonsoft.Json,直接由NuGet下载

官网说明:

var client = new RestClient(“http://example.com”);

// client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest(“resource/{id}”);

request.AddParameter(“name”, “value”); // adds to POST or URL querystring based on Method

request.AddUrlSegment(“id”, “123”); // replaces matching token in request.Resource

// add parameters for all properties on an object

request.AddJsonObject(@object);

// or just whitelisted properties

request.AddObject(object, “PersonId”, “Name”, …);

// easily add HTTP Headers

request.AddHeader(“header”, “value”);

// add files to upload (works with compatible verbs)

request.AddFile(“file”, path);

// execute the request

var response = client.Post(request);

var content = response.Content; // raw content as string

// or automatically deserialize result

// return content type is sniffed but can be explicitly set via RestClient.AddHandler();

var response2 = client.Post(request);

var name = response2.Data.Name;

// or download and save file to disk

client.DownloadData(request).SaveAs(path);

// easy async support

await client.ExecuteAsync(request);

// async with deserialization

var asyncHandle = client.PostAsync(request, response => {

Console.WriteLine(response.Data.Name);

});

// abort the request on demand

asyncHandle.Abort();

写一个工具类

public class RestSharpApiUtil

{

#region 暴露执行方法

///

/// 组装Client,Request,并执行Http请求

///

/// 返回值类型

/// 基地址

/// 相对地址

/// 请求类型

/// Get/Put/Delete/Post等参数

/// post请求体

///

public static ResponseMessage RestAction(string baseUrl, string relativeUrl, Method method=Method.GET,List lstParam=null)

{

var client = new RestClient(baseUrl);

return RestMethod(client, InstallRequest(relativeUrl,method,lstParam));

}

///

/// 异步请求无返回值

///

///

///

///

///

///

public static void RestActionNoResponseAsync(string baseUrl, string relativeUrl, Method method = Method.GET, List lstParam = null)

{

var client = new RestClient(baseUrl);

RestMethodWithOutReturnAsync(client, InstallRequest(relativeUrl, method, lstParam));

}

#endregion

#region 底层调用,并不暴露方法

///

/// Http请求

///

///

///

///

///

static ResponseMessage RestMethod(RestClient client, RestRequest request)

{

RestResponse restResponse = (RestResponse)client.Execute(request);

try

{

return restResponse == null ? new ResponseMessage() :

string.IsNullOrWhiteSpace(restResponse.Content) ? new ResponseMessage() :

JsonConvert.DeserializeObject>(restResponse.Content);

}

catch (Exception ex)

{

return new ResponseMessage() { success = false };

}

}

///

/// 无返回值异步调用

///

///

///

static void RestMethodWithOutReturnAsync(RestClient client, RestRequest request)

{

RestResponse restResponse;

var asyncHandle = client.ExecuteAsync(request, response =>

{

restResponse = (RestResponse)response;

});

asyncHandle.Abort();

}

///

/// 组装Request

///

///

///

///

///

static RestRequest InstallRequest(string relativeUrl, Method method = Method.GET, List lstParam = null)

{

var request = new RestRequest(relativeUrl, method);

if (lstParam != null)

{

foreach (RestParam p in lstParam)

{

switch (p.ParamType)

{

case EmParType.UrlSegment:

request.AddUrlSegment(p.Key, p.Value);

break;

case EmParType.Param:

request.AddParameter(p.Key, p.Value);

break;

case EmParType.Body:

request.AddJsonBody(p.Value);

break;

default:

break;

}

}

}

return request;

}

#endregion

}

其中用到两个类:ResponseMessage:返回值实体,根据自己的业务组装即可

RestParam:参数实体以及参数类型

转自:https://blog.csdn.net/dengzitui/article/details/88715385

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • getParameterValues用法

    getParameterValues用法getParameterValues用法你希望学习哪些程式语言:JSP  PHP  PERL    这些inputtype名称都叫做langtype,如果用request.getParameter(“langtype”)来取这些值,到底要取哪一个?所以在这个时候,不能用getParameter来取资料,而应该用getParameterValues来取资

    2022年7月22日
    9
  • 各种网页木马挂马的代码

    各种网页木马挂马的代码1 嵌入网页 iframesrc http 网页木马地址 width 0 height 0 border 0 2 PHP 网页挂马 iframesrc http 82647495 comwidth 0height 0 3 图片木马 html html iframesrc http iframesrc http

    2025年11月27日
    4
  • 瑞利分布与莱斯分布[通俗易懂]

    瑞利分布与莱斯分布[通俗易懂]瑞利分布与瑞利衰落信道第一种理解:当一个随机二维向量的两个分量呈独立的、有着相同的方差的正态分布时,这个向量的模呈瑞利分布。瑞利分布是最常见的用于描述平坦衰落信号接收包络或独立多径分量接受包络统计时

    2022年7月2日
    114
  • docker部署gitlab[通俗易懂]

    docker部署gitlab[通俗易懂]这篇文章用来记录下我在使用docker部署gitlab时候遇到的一些坑。先介绍下我的环境:阿里云的轻量应用服务器:2核4G(好像最低要求配置,之前用2核2G的部署,直接给内存溢出),centos7.6第一步:安装docker具体安装步骤参考的是docker官方文档,主要就几个步骤就可以完成安装。1、…

    2022年10月7日
    3
  • python批量下载网页图片_Python下载图片

    python批量下载网页图片_Python下载图片根据图片url。批量下载图片:importosimportrequestspath=os.getcwd()+’\\abc\\’#设置图片文件路径,前提是必须要有abc这个文件夹importpandasaspddf=pd.read_excel(‘url1.xlsx’)urls=df[‘url’]foriinrange(len(urls)):print(i)#url=’http://pic.qiushibaike.com/syste..

    2025年11月24日
    3
  • java 字符串和整型的相互转换_java字符串转整型数组

    java 字符串和整型的相互转换_java字符串转整型数组Java中字符串转整型和整型转字符串1.字符串转整型Java代码,字符串为纯数字的情况下,调用Integer的静态方法parseInt或者valueOfJava代码,如果单个字符或字符串,需要切开转化为char字符再转化,否则按照上述方法会出现空指针异常(ASCLL码0:**48**a:**97**A:**65**)2.整型转字符串Java代码,3种方法1.字符串转整型Java代码,字符串为纯数字的情况下,调用Integer的静态方法parseInt或者valueOfpublicclass

    2022年10月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号