详细参考这个博文: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. json model 互转

    1.json转model TestModel tm = new TestModel();JavaScriptSerializer js = new JavaScriptSerializer();tm ...

  2. Unity防破解 —— 加密Dll与Key保护

        在阅读这篇文章之前,我在处理mono加密问题时,也是参考了雨凇的文章,所以建议先看一下雨凇写的关于加密Dll的文章: 1.Unity3D研究院之Android加密DLL与破解DLL .SO 2 ...

  3. FZU-2219 StarCraft(贪心)

     Problem 2219 StarCraft Accept: 294    Submit: 860Time Limit: 1000 mSec    Memory Limit : 32768 KB   ...

  4. 线段树【p2629】 好消息,坏消息

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->p2629 好消息,坏消息 历程 刚开始看到这个题,发现是需要维护区间和,满心欢喜敲了一通线段树,简单debug之后交上去 \ ...

  5. 如何正确使用const(常量),define(宏)

    前言 在开发中,也许我们会经常使用到宏定义,或者用const修饰一些数据类型,经常有开发者不知道怎么正确使用,导致项目中乱用宏定义与const修饰符.本篇主要介绍在开发中怎么正确使用const与def ...

  6. JNuit

    s1:@Test s2:根据提示导包 s3:选中方法名,右击run as -->JUnit Test package songyan.jdbc.learn1; import org.junit. ...

  7. [转]C++函数模板与模板函数

      1.函数模板的声明和模板函数的生成   1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数. ...

  8. Android Handler 消息循环机制

    前言 一问起Android应用程序的入口,很多人会说是Activity中的onCreate方法,也有人说是ActivityThread中的静态main方法.因为Java虚拟机在运行的时候会自动加载指定 ...

  9. 【java】java反射 Field类的研究使用

    java反射 Field类的研究使用 user.getClass().getFields() 和 user.getClass().getDeclaredFields(); 的区别是什么?

  10. IntelliJ全家桶修改terminal字体的方法

    IntelliJ IDEA 设置Terminal 窗口字体大小 我在Setting中查看了所有和Terminal字样有关的设置,都没有找到设置字体大小的方法,原来Terminal也只需要设置Conso ...