详细参考这个博文: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远程调用接口的更多相关文章

  1. HttpClient方式调用接口的实例

    使用HttpClient的方式调用接口的实例. public class TestHttpClient { public static void main(String[] args) { // 请求 ...

  2. java Webservice(一)HttpClient远程调用

    我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容      2.通 ...

  3. 几种远程调用接口协议简单比较和web service(SOAP)与HTTP接口的区别:

    什么是web service?       答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化. ...

  4. HttpClient方式调用接口的java 简单案例源码+附jar包

    1 package com.itNoob.httpClient; import org.apache.commons.httpclient.HttpClient; import org.apache. ...

  5. Httpclient远程调用WebService示例(Eclipse+httpclient)

    package cn.com.taiji.pos.httpserver; import java.io.BufferedInputStream;import java.io.ByteArrayOutp ...

  6. Httpclient远程调用WebService示例

    我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容      2.通 ...

  7. tomcat+webservice实现简单的web服务远程调用接口

    1,准备工作:    ①需要使用到jaxws的一系列架包,网址:http://jax-ws.java.net,我下的是比较新的一个版本(下载好以后吧架包发在lib下),②webservice的一个工具 ...

  8. httpclient方式调用接口

    public class ToInterface { /** * post方式提交表单(模拟用户登录请求) */ public static void postForm() { // 创建默认的htt ...

  9. SpringBoot使用HttpClient远程调用

    一. Get请求 try { //拼接url url = url+"access_token="+token+"&department_id=1&fetc ...

随机推荐

  1. JavaScript基础之原型对象和原型链

    原型对象 原型对象简单来说就是函数的原型所指向的对象.前面说原型的时候,说了Object.prototype所指对象就是Object(函数)的原型对象.在每个函数的原型对象中,默认会有construc ...

  2. Ubuntu 14.04LTS+Git

    Git是我们常用的代码托管工具,作为程序员,Git是必备的. 安装Git的方法很简单,官网就有写:http://git-scm.com/download/linux 根据官网的说明,用: sudo a ...

  3. 牛客网 暑期ACM多校训练营(第二场)A.run-动态规划 or 递推?

    牛客网暑期ACM多校训练营(第二场) 水博客. A.run 题意就是一个人一秒可以走1步或者跑K步,不能连续跑2秒,他从0开始移动,移动到[L,R]的某一点就可以结束.问一共有多少种移动的方式. 个人 ...

  4. 牛客网 暑期ACM多校训练营(第一场)A.Monotonic Matrix-矩阵转化为格子路径的非降路径计数,Lindström-Gessel-Viennot引理-组合数学

    牛客网暑期ACM多校训练营(第一场) A.Monotonic Matrix 这个题就是给你一个n*m的矩阵,往里面填{0,1,2}这三种数,要求是Ai,j⩽Ai+1,j,Ai,j⩽Ai,j+1 ,问你 ...

  5. 2018 CCPC 湘潭邀请赛 & 2018 JSCPC

    Problem A Problem B Problem C 这题用主席树轻松解决 可以二分答案,每次查询:也可以直接开个全局变量在主席树上二分: 时间复杂度$O(nlog^{2}n)$或$O(nlog ...

  6. geant4开发平台的构建方案的讨论a

    首先比较linux和windows下的平台的不同的功能 linux通过命令进行一系列操作,对于不习惯命令的也可以用鼠标,但是就显得过于落后,因为命令的存在自然表明其先进性. linux下的geant4 ...

  7. Flatten 2D Vector -- LeetCode

    Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [,], [], [,,] ] By cal ...

  8. 写给嵌入式程序员的循环冗余校验(CRC)算法入门引导

    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导 http://blog.csdn.net/liyuanbhu/article/details/7882789 前言 CRC校验(循环冗余校验)是数 ...

  9. 【java】Stream的使用

    首先,给大家推荐一个好的地方:http://ifeve.com/stream/ 可以好好学一下 接下来,今天要删除数组中的某些元素,想到了之前用过的这个JDK8的Stream 1.Array转化为St ...

  10. win10 virtualenv

    一 创建新虚拟环境 virtualenv appiumenv 二 激活 appiumenv\Scripts\activate 注意是正斜杠,