HttpClient远程调用接口
详细参考这个博文:http://www.cnblogs.com/itliucheng/p/5065619.html
一、get请求:
- //关键代码就这几行
- String urlNameString ="http://127.0.0.1:8601/setResult/" + text + "/" + newWordsText;
- // //往服务器端写内容 也就是发起http请求需要带的参数
// // 根据地址获取请求
HttpGet request = new HttpGet(urlNameString);//这里发送get请求
// // 获取当前客户端对象
HttpClient httpClient = new DefaultHttpClient();
// // 通过请求对象获取响应对象
- HttpResponse response = httpClient.execute(request);
======================================================================
- @RequestMapping("getWeChatUserInfo")
- @ResponseBody
- public String getWeChatUserInfo(String token,String openid){
- String urlNameString = "https://api.weixin.qq.com/sns/userinfo?access_token=TOKEN&openid=OPENID";
- urlNameString=urlNameString.replace("TOKEN", token);
- urlNameString=urlNameString.replace("OPENID",openid);
- String result="";
- try {
- // 根据地址获取请求
- HttpGet request = new HttpGet(urlNameString);//这里发送get请求
- // 获取当前客户端对象
- HttpClient httpClient = new DefaultHttpClient();
- // 通过请求对象获取响应对象
- HttpResponse response = httpClient.execute(request);
- // 判断网络连接状态码是否正常(0--200都数正常)
- if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
- result= EntityUtils.toString(response.getEntity(),"utf-8");
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return result;
- //....result是用户信息,站内业务以及具体的json转换这里也不写了...
- }
- //要调用的接口形式
- @GetMapping("/setResult/{word}/{classifyName}")
- public Result<String> setResult(@PathVariable("word") String word, @PathVariable("classifyName") String classifyName) {
- int i1 = classifyService.selectClassifyCountByName(classifyName);
二、但是由于get方式请求内容大小有限,现在改由post请求提交:
- //接口形式
- // @ApiOperation("测试选择数据并添加分类接口,word需要分类的文本,classifyName添加分类")
- @PostMapping("/setResult")
- public Result<String> setResult(@RequestParam String word,@RequestParam String classifyName) {
- int i1 = classifyService.selectClassifyCountByName(classifyName);
- if (i1 > 0) {
- //分类已存在
- Classify classify = classifyService.selectClassifyByName(classifyName);
- KeyWord keyword = new KeyWord();
- keyword.setKeywordName(word);
- keyword.setClassifyId(classify.getId());
- classifyService.addKeyWord(keyword);//添加KeyWord数据
- modelExercise();//更新本地硬盘的表
- //关键代码就这几行
String urlNameString = "http://127.0.0.1:8601/setResult";- //POST的URL
- HttpPost httppost = new HttpPost(urlNameString);
- //建立HttpPost对象
- List<NameValuePair> params = new ArrayList<NameValuePair>();
- //建立一个NameValuePair数组,用于存储欲传送的参数
- params.add(new BasicNameValuePair("word", word));
- params.add(new BasicNameValuePair("classifyName", classifyName));
- //添加参数
- httppost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
- //设置编码
- HttpResponse response = new DefaultHttpClient().execute(httppost);
- //发送Post,并返回一个HttpResponse对象
- if (response.getStatusLine().getStatusCode() == 200) {//如果状态码为200,就是正常返回
- String result = EntityUtils.toString(response.getEntity());
- }
三、结果数据库用varchar无法容纳内容,现在改由text来存储
HttpClient远程调用接口的更多相关文章
- HttpClient方式调用接口的实例
使用HttpClient的方式调用接口的实例. public class TestHttpClient { public static void main(String[] args) { // 请求 ...
- java Webservice(一)HttpClient远程调用
我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容 2.通 ...
- 几种远程调用接口协议简单比较和web service(SOAP)与HTTP接口的区别:
什么是web service? 答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化. ...
- HttpClient方式调用接口的java 简单案例源码+附jar包
1 package com.itNoob.httpClient; import org.apache.commons.httpclient.HttpClient; import org.apache. ...
- Httpclient远程调用WebService示例(Eclipse+httpclient)
package cn.com.taiji.pos.httpserver; import java.io.BufferedInputStream;import java.io.ByteArrayOutp ...
- Httpclient远程调用WebService示例
我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容 2.通 ...
- tomcat+webservice实现简单的web服务远程调用接口
1,准备工作: ①需要使用到jaxws的一系列架包,网址:http://jax-ws.java.net,我下的是比较新的一个版本(下载好以后吧架包发在lib下),②webservice的一个工具 ...
- httpclient方式调用接口
public class ToInterface { /** * post方式提交表单(模拟用户登录请求) */ public static void postForm() { // 创建默认的htt ...
- SpringBoot使用HttpClient远程调用
一. Get请求 try { //拼接url url = url+"access_token="+token+"&department_id=1&fetc ...
随机推荐
- html5进阶之canvas图像基础
1.首先还是使用之前讲过的Image()函数来预加载图像. 在调用图像之前,需创建一个事件监听器,为其保证图像已经正确的加载. 如下图: 监听图片已经正确加载 2.把图像显示在画布上面,这里将不再使用 ...
- Bug预防体系
Web常见产品问题及预防 测试人员在每次版本迭代中,会对项目的整体质量有一个把控,对于项目常见的问题,开发经常犯的错误都会有所了解,为了避免或者减少这样的错误或不规范的事情在发生,测试人员可以整理构建 ...
- [HDU4336]Card Collector(min-max容斥,最值反演)
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 在React组件unmounted之后setState的报错处理
最近在做项目的时候遇到一个问题,在 react 组件 unmounted 之后 setState 会报错.我们先来看个例子, 重现一下问题: class Welcome extends Compone ...
- vim 注释取消注释多行
按下ctrl+v选中多行,按大写I(必须是大写的I)进入编辑模式,输入注释符号如#,最后按下esc退出就完成了 取消注释一样按下ctrl+v选中,按d删除
- 关于计算机中的《补码》,公式:-n=~n+1 引伸:~n=-n-1
在计算机系统中,数值一律用补码来表示(存储).主要原因是使用补码可以将符号位和其他位统一处理:同时,减法也可以按加法来处理.另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃.补 ...
- Linux使用nginx部署Laravel
问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htacce ...
- 在scala中:: , +:, :+, :::, +++的区别总结
初学Scala的人都会被Seq的各种操作符所confuse.下面简单列举一下各个Seq操作符的区别. 4种操作符的区别和联系 :: 该方法被称为cons,意为构造,向队列的头部追加数据,创造新的列表. ...
- asp.net限制用户登录错误次数
很经常在登录一个网站的时候看到,如果你登录的时候输入的账号密码错误超过三次就被锁定,然后等一段时间才能继续登录,最最经常使用的就是银行系统啦~~ 该功能处理流程如下: string uid = Req ...
- 2017.7.12 IDEA热部署(更新jsp或java代码不用重启tomcat即可即时生效)
选择war explored. 主要在于 On frame deactivation选项配置选择为 Update classes and resourses(当且仅当在Deployment配置页,对应 ...