首页 > 代码库 > java 发送带Basic Auth认证的http post请求

java 发送带Basic Auth认证的http post请求

构造http header

private static final String URL = "url";private static final String APP_KEY = "key";private static final String SECRET_KEY = "secret";

 

    /**     * 构造Basic Auth认证头信息     *      * @return     */    private String getHeader() {        String auth = APP_KEY + ":" + SECRET_KEY;        byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));        String authHeader = "Basic " + new String(encodedAuth);        return authHeader;    }

老方式:

    private void send1(JPushObject pushObject) {        CloseableHttpClient client = HttpClients.createDefault();        HttpPost post = new HttpPost(URL);        System.out.println("要发送的数据" + JSON.toJSONString(pushObject));        StringEntity myEntity = new StringEntity(JSON.toJSONString(pushObject), ContentType.APPLICATION_JSON);// 构造请求数据        post.addHeader("Authorization", getHeader());        post.setEntity(myEntity);// 设置请求体        String responseContent = null; // 响应内容        CloseableHttpResponse response = null;        try {            response = client.execute(post);            System.out.println(JSON.toJSONString(response));            if (response.getStatusLine().getStatusCode() == 200) {                HttpEntity entity = response.getEntity();                responseContent = EntityUtils.toString(entity, "UTF-8");            }            System.out.println("responseContent:" + responseContent);        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (response != null)                    response.close();            } catch (IOException e) {                e.printStackTrace();            } finally {                try {                    if (client != null)                        client.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }

httpClient方式

    public void send() throws ClientProtocolException, IOException {        HttpClient httpClient = HttpClientBuilder.create().build();        HttpPost httpPost = BaseHttpPost.buildHttpHeader(url);        // 设置请求的参数        List<NameValuePair> nvps = new ArrayList<NameValuePair>();        nvps.add(new BasicNameValuePair("fromAccid", fromAccid));        nvps.add(new BasicNameValuePair("toAccids", toAccids));        nvps.add(new BasicNameValuePair("type", msgType));        Map<String, Object> body = new HashMap<String, Object>();        body.put("msg", msg);        nvps.add(new BasicNameValuePair("body", JSON.toJSONString(body)));        nvps.add(new BasicNameValuePair("pushcontent", msg));        httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));        // 执行请求        HttpResponse response = httpClient.execute(httpPost);        // 打印执行结果        System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));    }

 

java 发送带Basic Auth认证的http post请求