关于HTTP调用接口的四种方式(post,get,delete,put)

package Utils;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.DeleteMethod;

public class smsUtils {
//POST请求
public static String httpURLConnectionPOST (String parm,String Url) {
try {
URL url = new URL(Url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中
connection.setDoOutput(true); // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)
connection.setDoInput(true); // 设置连接输入流为true
connection.setRequestMethod(“POST”); // 设置请求方式为post
connection.setUseCaches(false); // post请求缓存设为false
connection.setInstanceFollowRedirects(true); // 设置该HttpURLConnection实例是否自动执行重定向
connection.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded;charset=utf-8”);
connection.connect(); // 建立连接
// 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)
DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
dataout.writeBytes(parm);
// 输出完成后刷新并关闭流
dataout.flush();
dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)
// 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)
BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), “utf-8”));
String line;
StringBuilder sb = new StringBuilder(); // 用来存储响应数据
// 循环读取流,若不到结尾处
while ((line = bf.readLine()) != null) {
sb.append(line).append(System.getProperty(“line.separator”));
}
bf.close();
connection.disconnect(); // 销毁连接
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

//GET请求
 public static String httpURLConectionGET(String URLParam) {  
        try {  
            URL url = new URL(URLParam);    // 把字符串转换为URL请求地址  
            HttpURLConnection connection = (HttpURLConnection) url.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;
    }  
 //delete请求
 public static String DELETE(String url,Map<String,String> dataForm){  
        HttpClient httpClient = new HttpClient();  
        DeleteMethod deleteMethod = new DeleteMethod(url);  

        List<NameValuePair> data = new ArrayList<NameValuePair>();  
        if(dataForm!=null){  
            Set<String> keys = dataForm.keySet();  
            for(String key:keys){  
                NameValuePair nameValuePair = new NameValuePair(key, (String) dataForm.get(key));  
                data.add(nameValuePair);  
            }  
        }  
        deleteMethod.setQueryString(data.toArray(new NameValuePair[0]));  
        try {  
            int statusCode = httpClient.executeMethod(deleteMethod);  
            if (statusCode != HttpStatus.SC_OK) {  
                return "Method failed: " + deleteMethod.getStatusLine();  
            }  
            byte[] responseBody = deleteMethod.getResponseBody();  
            return new String(responseBody);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }finally {  
            deleteMethod.releaseConnection();  
        }  
        return null;  
    } 
 //put 请求
 public static String httpURLConnectionPut (String parm,String Url) {  
        try {  
            URL url = new URL(Url);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中  
            connection.setDoOutput(true);  // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)  
            connection.setDoInput(true);  // 设置连接输入流为true 
            connection.setRequestMethod("PUT");  // 设置请求方式为post 
            connection.setUseCaches(false);   // post请求缓存设为false  
            connection.setInstanceFollowRedirects(true);   // 设置该HttpURLConnection实例是否自动执行重定向  
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");     
            connection.connect();  // 建立连接 
            // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)  
            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());  
            dataout.writeBytes(parm);  
            // 输出完成后刷新并关闭流  
            dataout.flush();  
            dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)   
            // 连接发起请求,处理服务器响应  (从连接获取到输入流并包装为bufferedReader)  
            BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));   
            String line;  
            StringBuilder sb = new StringBuilder(); // 用来存储响应数据  
            // 循环读取流,若不到结尾处  
            while ((line = bf.readLine()) != null) {  
                sb.append(line).append(System.getProperty("line.separator"));  
            }  
            bf.close();  
            connection.disconnect(); // 销毁连接  
            return sb.toString();
        } catch (Exception e) {  
            e.printStackTrace();  
        }
        return null;  
    }  

}

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值