java 发送带Basic Auth认证的http post请求
2023-09-14 08:59:55 时间
构造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方式
添加认证
HttpClientContext context = HttpClientContext.create();
public void addUserOAuth(String username, String password) { CredentialsProvider credsProvider = new BasicCredentialsProvider(); org.apache.http.auth.Credentials credentials = new org.apache.http.auth.UsernamePasswordCredentials(username, password); credsProvider.setCredentials(org.apache.http.auth.AuthScope.ANY, credentials); this.context.setCredentialsProvider(credsProvider); }
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")); // 执行请求
addUserOAuth("123", "456");
// 执行请求
HttpResponse response = httpClient.execute(httpPost,context);
// 打印执行结果 System.out.println(EntityUtils.toString(response.getEntity(), "utf-8")); }
相关文章
- eclipse怎么导入java文件_Eclipse如何导入JAVA工程?如何将项目导入Eclipse中?
- java分前端后端吗_Java Web属于前端还是后端
- java获取服务器路径_JAVA获取服务器路径的方法「建议收藏」
- Java实现——Dom4j读写XML文件
- JAVA生成uuid_oracle uuid生成
- 转换流实现了字节流和字符流之间的互相转换_java输出流输出文件
- java h2 数据库_Java H2数据库
- 利用java生成uuid
- 3. java缓存-线程内缓存guava cache
- java反射 getMethod_JAVA 反射 getMethod() 和 invoke() 具体应用[通俗易懂]
- 一致性hash算法 java实现_信息的一致性
- java创建线程池的几种方式_Java中的线程池
- Java反射,通过对象获取属性及属性值
- java中的lambda表达式(从小白也能看懂做起)
- 【愚公系列】2023年03月 Java教学课程 109-MySQL数据库(锁)
- java数组操作(二)
- Java对象排序的3种实现方式详解编程语言
- Java图片处理工具类详解编程语言
- Java 字符串格式化详解编程语言
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- 失效使用Redis让Java缓存过期失效(redisjava过期)
- Redis在Java中的应用(redisjava类)
- 机制Redis与Java实现过期机制(redisjava过期)
- 处理实现Redis和Java统一的过期处理机制(redisjava过期)
- 时间Java操作Redis设置过期时间的实现(redisjava过期)
- 时间设置Java操作Redis缓存设置过期时间(redisjava过期)
- Java轻松处理Redis缓存(java处理redis)
- 处理报错:java/lang/NoClassDefFoundError: java/lang/Object
- 使用Java监听MySQL数据库变化(java监听mysql)
- 通过代理类实现java连接数据库(使用dao层操作数据)实例分享
- java利用htmlparser获取html中想要的代码具体实现