用HttpClient实现同步RTX

持续加班,到现在都还没有缓过劲来,每天下班回来基本上就已经困的不行了,好不容易休息了下,好像又有点缓过来了,继续写。
遇到了和RTX同步的问题,没想到腾讯还出了这么个东西,呵呵,打技术支持电话时人家说不可能在无偿的情况下提供太多的服务,稍微用了下,再想想那个支持的话,不免觉得有点好笑。
RTX下给提供了个添加用户到部门的CGI,也不知道是我的机器有问题还是怎么回事,在我机器上横竖不好使,偶尔重启下机器又可以用了,真的是有点莫名其妙了。可能在你对一个事物没有足够的了解之前,总是会有这样或那样的莫名其妙的事情发生,非得到对它了如指掌的时候,再遇到什么问题,就可以说:恩?不可能!绝对不可能!但是我还没有到那个阶段,所以我的反映是:我靠,还真他妈邪了蛋了,这到底是怎么回事呢?
研究了研究终于有了点苗头,莫名其妙的事情也不怎么出了,不会说非要重启机器才会好使,但是它是怎么消失的呢?我还是有点莫名其妙。
根据它提够的CGI,可以实现同步用户和部门,关键是怎么调用它给提供的接口,这里有apache出的HttpClient,来模拟get和post请求。上网搜了下,功能还真的是比较强大,这样的编程工具包都能想的出来,apache还真不愧为apache啊,而它还只是Jakarta Common的子项目,由此可见顶级项目有多厉害了。
写下的我的实现过程。
首先实例化一个HttpClient

HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(serverIP, serverPORT, serverAgreement);

然后实例化POST要提交的参数

NameValuePair param1 = new NameValuePair(parameterName1, parameterValue1);
NameValuePair param2 = new NameValuePair(parameterName2, parameterValue2);
NameValuePair param3 = new NameValuePair(parameterName3, parameterValue3);
……
NameValuePair[] array = new NameValuePair[]{param1, param2, param3};

然后实例化POST方法

PostMethod method = new PostMethod("/AddUserToDepts.cgi");
method.setRequestBody(array);

然后执行此方法

client.executeMethod(method);

剩下的事就是自己去写cgi了,腾讯提供的AddUserToDepts.cgi倒是个很好的参照,仿照着它很容易的就可以实现对部门对用户的同步,当然还可以用别的方法,他们官网上有技术白皮书,看看就会了。
有了这个工具包,HTTP协议客户端的编程工作就好搞多了,好多功能都已经写好了,类库的功能实在是太强大,突然间就想到,一个程序员的意义,是会使用别人开发好的类库快速开发呢,还是给别人开发类库方便大家的使用呢?
或许这是两个阶段,亦或者,这是两种境界。
使用jdk11的httpclient实现发送http请求的步骤如下: 1.创建HttpClient对象,可以通过HttpClient.newBuilder()方法来创建,也可以直接使用HttpClient.newHttpClient()方法来创建。 2.创建HttpRequest对象,可以通过HttpRequest.newBuilder()方法来创建,也可以直接使用HttpRequest.create()方法来创建。 3.发送请求,可以通过HttpClient.send()方法来发送请求,该方法会返回一个HttpResponse对象,通过该对象可以获取响应的状态码、响应头、响应体等信息。 下面是一个简单的示例代码: ``` import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.time.Duration; public class HttpClientDemo { public static void main(String[] args) throws Exception { // 创建HttpClient对象 HttpClient client = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) .connectTimeout(Duration.ofSeconds(2)) .build(); // 创建HttpRequest对象 HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://www.example.com")) .GET() .build(); // 发送请求 HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); // 获取响应信息 int statusCode = response.statusCode(); String responseBody = response.body(); HttpHeaders headers = response.headers(); // 输出响应信息 System.out.println("Status Code: " + statusCode); System.out.println("Response Body: " + responseBody); System.out.println("Headers: " + headers); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值