java调用接口的各种方法

来源:互联网 发布:知乎社区 官网 编辑:程序博客网 时间:2024/06/10 06:35

1、get

public String doGet(String url) {try {URL thisurl = new URL(url); // 把字符串转换为URL请求地址HttpURLConnection connection = (HttpURLConnection) thisurl.openConnection();// 打开连接connection.connect();// 连接会话// 获取输入流BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String line;StringBuilder sb = new StringBuilder();while ((line = br.readLine()) != null) {// 循环读取流sb.append(line);}br.close();// 关闭流connection.disconnect();// 断开连接return sb.toString();} catch (Exception e) {e.printStackTrace();// System.out.println("失败!");return null;}}
使用jdk自带的java.net.URL;即可

2、delete

public String doDelete(String url) {try {URL thisurl = new URL(url);HttpURLConnection connection = (HttpURLConnection) thisurl.openConnection();connection.setRequestMethod("DELETE");//就是这里不一样connection.connect();// 获取输入流BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String line;StringBuilder sb = new StringBuilder();while ((line = br.readLine()) != null) {// 循环读取流sb.append(line);}br.close();// 关闭流connection.disconnect();return sb.toString();} catch (Exception e) {e.printStackTrace();// System.out.println("失败!");return null;}}
使用jdk自带的java.net.URL;即可

3、post

private void recieveMsg(String url, String isliID) {                        HttpClient httpClient = new HttpClient();PostMethod postMethod = new PostMethod(url);// 填入各个表单域的值,修改这个即可NameValuePair[] data = { new NameValuePair("q", isliID) };// 将表单的值放入postMethod中postMethod.setRequestBody(data);int statusCode = 0;statusCode = httpClient.executeMethod(postMethod);if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {// 从头中取出转向的地址Header locationHeader = postMethod.getResponseHeader("location");String location = null;if (locationHeader != null) {location = locationHeader.getValue();}return null;} else {                                //调用成功                               System.out.println(postMethod.getStatusLine());String str = "";try {str = postMethod.getResponseBodyAsString();BufferedReader reader = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(), "UTF-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line); System.out.println(line); }} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(str);}postMethod.releaseConnection();}

使用的jar是

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

这是个诡异的方法,之前测某个接口的时候使用百度到的其他post都无法正确提交数据,只有这个是对的。(亲测这段代码可以直接拿到android上使用)