聊天机器人_远程接口javautil
来源:互联网 发布:js面向对象编程教程 编辑:程序博客网 时间:2024/05/17 09:22
package com.httpdemo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.nio.charset.Charset;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpMethod;import org.apache.commons.httpclient.HttpStatus;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.params.HttpMethodParams;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpDelete;import org.apache.http.client.methods.HttpRequestBase;import org.apache.http.client.utils.URLEncodedUtils;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HttpClientUtil {private static int DEFAULT_TIME_OUT = 5000;// 超时时间 单位毫秒protected static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);public static String get(String endurls,Map<String,Object> map) throws HttpException, IOException{return get(endurls,map,null,DEFAULT_TIME_OUT);} //拼接urlprivate static String get(String endurls, Map<String, Object> map,Map<String, Object> headers, int timeOut) throws HttpException, IOException { String result = null;//返回结果结合 HttpClient httpClient = new HttpClient(); httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");// 指定传送字符集为UTF-8格式 httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeOut);//设置超时时间 endurls+="?"; int start=0; if(map != null){ for (Map.Entry<String, Object> entry:map.entrySet()) { if(start == 0){ endurls=endurls +entry.getKey() +"="+entry.getValue(); }else{ endurls=endurls +"&"+entry.getKey() +"="+entry.getValue(); } start++;} } System.out.println(endurls); //方法处理一 String xmlresult=result( endurls); //方法处理2return xmlresult;}//对网络地址进行处理private static String result (String endurls) throws IOException {URL getUrl = new URL(endurls);HttpURLConnection connection =(HttpURLConnection)getUrl.openConnection();connection.connect(); // 取得输入流,并使用Reader读取BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));StringBuffer sb = new StringBuffer();String line="";while ((line=reader.readLine())!= null) {sb.append(line);}reader.close();connection.disconnect();return sb.toString();}private static String result(String endurls,Map<String, Object> headers, HttpClient httpClient,String result) throws HttpException, IOException{ HttpMethod httpMethod =new GetMethod(endurls); if(null != headers){// for (Map.Entry<String, Object> entry:headers.entrySet()) { httpMethod.addRequestHeader(entry.getKey(), entry.getValue().toString());} } //发送请求 int statusCode = httpClient.executeMethod(httpMethod); // 请求状态不等200时不成功if(statusCode != HttpStatus.SC_OK){logger.error("网络连接异常,GET请求失败,请求地址:"+ endurls + "返回状态码:"+ statusCode);throw new HttpException("网络连接异常");}InputStream inputStream = httpMethod.getResponseBodyAsStream();BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));String string = "";StringBuffer stringBuffer = new StringBuffer();while ((string=br.readLine())!= null) {stringBuffer.append(string);}inputStream.close();//关流httpMethod.releaseConnection();//释放连接httpClient.getHttpConnectionManager().closeIdleConnections(0);result=stringBuffer.toString();return result;}public static String delete(String endurls, Map<String,Object> map,Map<String,String> headers,int timeOut) throws IOException, IOException{CloseableHttpClient client = HttpClientBuilder.create().build();RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(timeOut).setConnectionRequestTimeout(timeOut).setSocketTimeout(timeOut).build();if(map != null){List<NameValuePair> nvps =new ArrayList<NameValuePair>();for (Map.Entry<String, Object> entry:map.entrySet()) {if(entry.getValue() != null && !"".equals(entry.getValue())){nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));}if(!nvps.isEmpty()){endurls += "?" +URLEncodedUtils.format(nvps, "utf-8");}}}HttpRequestBase request = new HttpDelete(endurls);request.setConfig(requestConfig);if(headers != null){Iterator<String> it = headers.keySet().iterator();while(it.hasNext()){String key = it.next();String value = headers.get(key);request.addHeader(key, value);}}CloseableHttpResponse response = client.execute(request);HttpEntity entity = response.getEntity();if (entity != null) return EntityUtils.toString(response.getEntity(),Charset.forName("UTF-8"));return "";}public static void main(String[] args) {String url="http://www.tuling123.com/openapi/api?key=b9c73434132c08a17a70eb977d743f3b&info=讲个故事";String endurls="http://www.tuling123.com/openapi/api";Map<String, Object> map = new HashMap<String, Object>();map.put("key", "b9c73434132c08a17a70eb977d743f3b");map.put("info", "你叫什么名字");try {String result = HttpClientUtil.get(endurls, map);System.out.println(result);} catch (HttpException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}
0 0
- 聊天机器人_远程接口javautil
- 智能聊天机器人的接口
- 聊天机器人_ _突击01编队_ _浅聊
- C++_写一个聊天机器人
- java实现小豆聊天机器人接口
- 小黄鸡simsimi聊天机器人接口分享
- 小逗比机器人的聊天接口 智能聊天机器人接口api
- 聊天机器人
- 聊天机器人
- 聊天机器人
- 聊天机器人
- 聊天机器人
- 聊天机器人
- 可自定接口的智能聊天机器人
- 能用来做微信自动聊天机器人的itchat接口
- 聊天机器人ELIZA
- 自动聊天机器人
- 在线聊天机器人
- 查询每个表size的sql
- SAT阅读:分类高频词汇小结
- Tomcat服务器配置参考
- iOS代码技巧之判断设备及状态
- 分支-08 高速公路超速处罚(15)
- 聊天机器人_远程接口javautil
- C++中RGB转换为ARGB
- html的编辑器 sublimetext2的使用及插件安装
- 认识自己——我的恐惧和悲观
- Android-对话框
- ThinkPHP 使用 PHPMaileer
- logger框架
- hdu 1050 (preinitilization or postcleansing, std::fill)
- MFC复习