大概就是這樣一個postjava
而後用戶的需求是:apache
一、分析這個接口,實現
1.1 獲取到sentence, score字段值
1.2 這個score值若是是<0.5,打印分值 情感傾向:0
這個score值若是是>=0.5,打印分值 情感傾向:1json
輸出文本中的結果爲:api
這裏用到了httpclient,要用到的jar包,下載的gz包解壓把lib裏的jar包build到eclipse項目中去(此步省)數組
連接:https://pan.baidu.com/s/1DXp2GLwLg7cNOzKviqAeBw
提取碼:odf6
連接:https://pan.baidu.com/s/1YodlzLMQ8RcWbCniJrvxPA
提取碼:lxa3
eclipse
直接上代碼吧,都是我拼湊起來的:post
package desi; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreConnectionPNames; import net.sf.json.JSONObject; public class PostURL { /** * 向指定 URL 發送POST方法的請求 * * @param url * 發送請求的 URL * @param param * 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。 * @return 所表明遠程資源的響應結果 */ public static List<String> readFile02(String path) { // 使用一個字符串集合來存儲文本中的路徑 ,也可用String []數組 List<String> list = new ArrayList<String>(); try { FileInputStream fis = new FileInputStream(path); // 防止路徑亂碼 若是utf-8 亂碼 改GBK eclipse裏建立的txt 用UTF-8,在電腦上本身建立的txt 用GBK InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); String line = ""; while ((line = br.readLine()) != null) { // 若是 t x t文件裏的路徑 不包含---字符串 這裏是對裏面的內容進行一個篩選 list.add(line); } br.close(); isr.close(); fis.close(); } catch (Exception e) { e.printStackTrace(); } return list; } //把字符串一行行寫入文件 public static void writeTxt(String result,String resultfilepath) { //寫入中文字符時解決中文亂碼問題 try { FileOutputStream fos = new FileOutputStream(new File(resultfilepath),true); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); bw.write(result + "\t\n"); //注意關閉的前後順序,先打開的後關閉,後打開的先關閉 bw.close(); osw.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } //post請求獲取結果 /** * sendUrl (遠程請求的URL) * param (遠程請求參數) * JSONObject (遠程請求返回的JSON) */ private static String sendPostUrl(String url, String param){ PrintWriter out = null; BufferedReader in = null; JSONObject jsonObject = null; String result = ""; List<String> reslutlist=new ArrayList<String>(); String qingganqingxiang=""; String jieguo=""; try { URL realUrl = new URL(url); // 打開和URL之間的鏈接 URLConnection conn = realUrl.openConnection(); // 發送POST請求必須設置以下兩行 conn.setDoOutput(true); conn.setDoInput(true); // 獲取URLConnection對象對應的輸出流(設置請求編碼爲UTF-8) out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8")); // 發送請求參數 out.print(param); // flush輸出流的緩衝 out.flush(); // 獲取請求返回數據(設置返回數據編碼爲UTF-8) in = new BufferedReader( new InputStreamReader(conn.getInputStream(), "UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } jsonObject = JSONObject.fromObject(result); System.out.println(jsonObject); //分析結果,得出字符串 裝了好幾臺機子了,一直都用這個===情感傾向:2===分值:0.632563 if((Double.parseDouble(jsonObject.get("score").toString()))>=0.5){ qingganqingxiang="===情感傾向:2"; }else { qingganqingxiang="===情感傾向:0"; } String score="===分值:"+jsonObject.get("score").toString(); String sentence=jsonObject.get("sentence").toString(); jieguo=sentence+qingganqingxiang+score; } catch (IOException e) { e.printStackTrace(); } finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return jieguo; } public static void main(String[] args) { String httpposturl="http://47.107.235.26:8383/pconline-bds-emotion/api/v1.0/emoa"; String result_path="E:\\360downloads\\pos_result.txt"; List<String> sList=readFile02("E:\\360downloads\\pos.txt"); for (String param : sList) { String res = sendPostUrl(httpposturl,"sentence="+param); System.out.println(res); writeTxt(res,result_path); } } }