问题是这样的,我用eclipse发送httpclient请求如下没有问题,但是在idea中就返回400,为毛呢???excuse me?

package com.vol.timingTasks;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;import java.io.IOException;/*** 数据抽取测试类** @author xbx**/
public class XBXmain {private final static String ENCODE = "utf-8";public static void main(String[] args) throws Exception {getDataA();}/** Basic验证* 用户名:* 密钥:*/public static void getDataA() throws  Exception{HttpResponse httpResponse = null;HttpClient httpClient = new DefaultHttpClient();String projectName = "中科洛阳信息产业园项目(一期)";String url = "http://labour.ztjs.cn/clound/wsForThird/laboursByProjectName/"+projectName ;HttpGet get = new HttpGet(url);try {// 创建HttpClientBuilderHttpClientBuilder httpClientBuilder = HttpClientBuilder.create();// 设置BasicAuthCredentialsProvider provider = new BasicCredentialsProvider();// Create the authentication scopeAuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM);// Create credential pair,在此处填写用户名和密码UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("", "");// Inject the credentialsprovider.setCredentials(scope, credentials);// Set the default credentials providerhttpClientBuilder.setDefaultCredentialsProvider(provider);// HttpClientCloseableHttpClient closeableHttpClient = httpClientBuilder.build();httpResponse = closeableHttpClient.execute(get);HttpEntity httpEntity = httpResponse.getEntity();String httpResult = EntityUtils.toString(httpEntity);String httpResult2 = EntityUtils.toString(httpEntity);} catch (IOException e) {}}}

把 访问地址:http://labour.ztjs.cn/clound/wsForThird/laboursByProjectName/中科洛阳信息产业园项目(一期)

放在谷歌浏览器,然后再复制出来,发现汉字编码格式变了。ok,那就先转换下编码格式再发送请求。  修改后代码如下:

package com.vol.timingTasks;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;import java.io.IOException;/*** 数据抽取测试类** @author xbx**/
public class XBXmain {private final static String ENCODE = "utf-8";public static void main(String[] args) throws Exception {getDataA();}/** Basic验证* 用户名:* 密钥:*/public static void getDataA() throws  Exception{HttpResponse httpResponse = null;HttpClient httpClient = new DefaultHttpClient();String projectName = "中科洛阳信息产业园项目(一期)";String url = "http://labour.ztjs.cn/clound/wsForThird/laboursByProjectName/"+java.net.URLEncoder.encode(projectName, ENCODE);//URL  中文 转码HttpGet get = new HttpGet(url);try {// 创建HttpClientBuilderHttpClientBuilder httpClientBuilder = HttpClientBuilder.create();// 设置BasicAuthCredentialsProvider provider = new BasicCredentialsProvider();// Create the authentication scopeAuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM);// Create credential pair,在此处填写用户名和密码UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("", "");// Inject the credentialsprovider.setCredentials(scope, credentials);// Set the default credentials providerhttpClientBuilder.setDefaultCredentialsProvider(provider);// HttpClientCloseableHttpClient closeableHttpClient = httpClientBuilder.build();httpResponse = closeableHttpClient.execute(get);HttpEntity httpEntity = httpResponse.getEntity();String httpResult = EntityUtils.toString(httpEntity);String httpResult2 = EntityUtils.toString(httpEntity);} catch (IOException e) {}}}

再试试,请求成功,只需要转下编码:

String url = "http://labour.ztjs.cn/clound/wsForThird/laboursByProjectName/"+java.net.URLEncoder.encode(projectName, ENCODE);//URL  中文 转码

HttpClient 请求 URL字符集转码问题相关推荐

  1. SpringBoot+zxing+Vue实现前端请求后台二维码图片

    场景 ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. github地址: https://github.com/zxing/zxing 若依微服务版手把手教你本地搭建环境 ...

  2. java httpclient 重定向_用Apache HttpClient实现URL重定向

    很多网站都使用了URL重定向技术,把一个原始请求从一个位置路由到另一个位置.原因可能是多方面的,比如域名转发.URL缩写.隐私保护.在同一网站维持相似的域名等. 本文讲述怎样使用Apache HTTP ...

  3. 我又踩坑了!如何为HttpClient请求设置Content-Type标头?

    最近在重构认证代码,认证过程相当常规: POST /open-api/v1/user-info?client_id&timstamp&rd=12345&sign=***& ...

  4. 用Apache HttpClient实现URL重定向

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow <用Apac ...

  5. HttpClient_用Apache HttpClient实现URL重定向

    很多网站都使用了URL重定向技术,把一个原始请求从一个位置路由到另一个位置.原因可能是多方面的,比如域名转发.URL缩写.隐私保护.在同一网站维持相似的域名等. 本文讲述怎样使用Apache HTTP ...

  6. java.net.URISyntaxException: Illegal character in query at index,http请求url中有非法字符导致

    在url中包含('|''&')这些字符直接用HttpClient请求就会报上述错误, 在网上看了一下解决办法有两种都是将非法字符进行转码再请求 列如:String url=http://bai ...

  7. 我又踩坑了!如何为 HttpClient 请求设置 Content-Type 标头?

    作者 | 小码甲 来源 | Dotnet Plus(ID:nodotnet) 头图 |  CSDN 下载自东方IC 最近在重构认证代码,认证过程相当常规: POST /open-api/v1/user ...

  8. java无响应_Java HttpClient请求无响应解决方案

    首先来看下多线程处理的流程: 在来看下:httpClient请求工具方法: public static String sendGetRequest(String reqURL, String deco ...

  9. 从Internet上抓取指定URL的源码的方案

    从Internet上抓取指定URL的源码的方案 作者: 引言: 在做无线项目的时候,与通讯公司的数据通讯有一部分是通过XML交互的,所以必须要动态抓取通讯公司提供的固定的Internet上的数据,便研 ...

最新文章

  1. JS BOM之location.hash详解
  2. Java 必会的 9 大技能,我请部门大神给你讲讲
  3. 速度提升2倍,超强悍CPU级骨干网络PP-LCNet
  4. Asp.net读取AD域信息的方法(一)
  5. java mifare_如何正确写入MifareUltralight NFC标签?
  6. 得到Js文件的绝对路径或相对路径的两法
  7. leetcode 203 python3
  8. pandownload最新复活版登录失败_【不看后悔】百度网盘不限速下载,最安全的方法(满血复活)...
  9. fragment类中的点击事件空指针异常
  10. Java 多线程详解(五)------线程的声明周期
  11. 小菜的系统框架界面设计-小菜用户权限管理软件开源大放送
  12. 如何在Mac上的Safari浏览器中输入画中画视频?
  13. matlab保存矩阵为txt,matlab保存矩阵成txt
  14. 影集电子相册制作系统普及版 39.9.7已注册版
  15. 数据包络分析法(DEA)_2
  16. 中国石油大学(华东)计算机/软件考研经验分享
  17. Pandas常用函数大合集
  18. 深度至尊 GHOST XP SP3 纯净版 V4.0
  19. 谈谈古典的《拆掉思维里的墙》
  20. 自动调制分类发展历程

热门文章

  1. Sheet弹出视图在SwiftUI中“怪异”行为的解决(第一次弹出视图的可选属性总得到nil值)
  2. 被win10的诸多功能无法使用折腾个半死
  3. Romberg积分法MATLAB实现(附代码、实例、详解)
  4. IEC 61131-3编程标准(GBT 15969.3)
  5. ubuntu日志文件管理
  6. 用Python更方便了解王者荣耀英雄属性对比
  7. html制作满天星,满天星怎么养?细心呵护也能做成干花!
  8. 佟大为新任《非诚》嘉宾 极力反对异地恋
  9. 树莓派4B+EdgeX+MQTT的填坑之旅
  10. Skyline 7 版本TerraExplorer Pro二次开发快速入门