HttpClient请求POST提示302,而且返回的response中的Localtion是我访问时使用的URL?

HttpClient请求POST提示302,而且返回的response中的Localtion是我访问时使用的URL,
例如:我使用的URL是https://bbs.csdn.net?client_id=10333&user=test,
localtion中也是这个https://bbs.csdn.net?client_id=10333&user=test

我试了直接使用curl可以返回json
我的post方法:


public static StringBuilder post(String url, Object data, String encoding) {
        log.info("HttpClient post start => "+url);
        CloseableHttpResponse response = null;
        HttpPost httpPost = null;
        HttpHost httpHost = null;
        StringBuilder responseEntity = null;
        String strings = "";

            URL _url = new URL(url);

            httpPost = new HttpPost(url);

            httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");

            if(!Stringer.isNullOrEmpty(data)){

                log.debug("HttpClient post url => "+url+", data:"+JSON.toJSONString(data));

                if (data instanceof Map) {
                    // Map方式传参处理
                    Map<String,String> params = (Map<String,String>) data;

                    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                    if (!Stringer.isNullOrEmpty(data)) {
                        Set<String> keySet = params.keySet();
                        for (String key : keySet) {
                            nvps.add(new BasicNameValuePair(key, params.get(key)));
                        }
                    }
                    httpPost.setEntity(new UrlEncodedFormEntity(nvps, encoding));

                } else if(data instanceof String){
                    // String方式传参处理
                    strings = (String)data;
                    strings = Stringer.nullToEmpty(strings);
                    ByteArrayEntity reqEntity = new ByteArrayEntity(strings.getBytes(encoding));
                    reqEntity.setContentEncoding(encoding);
                    httpPost.setEntity(reqEntity);
                }
            }

            httpPost.setConfig(defaultRequestConfig);

            httpHost = new HttpHost(_url.getHost(),_url.getPort());  
            response = httpClient.execute(httpHost,httpPost);

            if(!Stringer.isNullOrEmpty(response)){
                log.info("2--HttpClient response  => "+response);
                log.info("3--HttpClient StatusCode  => "+response.getStatusLine().getStatusCode());
                /*if (response.getStatusLine().getStatusCode() != 200) {
                    return null;
                }*/
                String locationUrl=response.getLastHeader("location").getValue();
                log.info("HttpClient locationUrl  => "+locationUrl);
                log.info("4--HttpClient StatusCode  => "+response.getStatusLine().getStatusCode());

                if (response.getStatusLine().getStatusCode() == 302) {
                    Header header = response.getFirstHeader("location"); // 跳转的目标地址是在 HTTP-HEAD上
                    String newuri = header.getValue(); // 这就是跳转后的地址,再向这个地址发出新申请
                    System.out.println(newuri);

                    httpPost = new HttpPost(newuri);
                    httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");


                    response = httpClient.execute(httpHost,httpPost);
                    int code = response.getStatusLine().getStatusCode();
                    locationUrl=response.getLastHeader("location").getValue();
                    log.info("5--HttpClient new Code  => "+code);
                    log.info("6--HttpClient locationUrl  => "+locationUrl);
                }
                responseEntity = new StringBuilder();
                responseEntity.append(EntityUtils.toString(response.getEntity(), encoding));
                return responseEntity;
            }

        return null;
    }

curl命令样例:

curl -k -d "client_id=10333&user=test" "https://bbs.csdn.net"

大神们帮忙看看吧

2个回答

https://bbs.csdn.net?client_id=10333&user=test,
地址栏后面跟?再加上属性名=属性值貌似是get的传参方式吧,怎么能用post?

找到原因了,未指定https协议。修改为httpHost = new HttpHost(_url.getHost(),_url.getPort(),“https”);就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Httpclient 请求weblogic的HttpServlet 返回的Response中Header不一致问题

大家好,开发过程中遇到个问题 ,我做的是CS项目,在客户端用Httpclient 请求weblogic的HttpServlet 返回的HttpServletResponse用了gzip压缩结果,但是在客户端接收时解压抛异常:java.util.zip.ZipException: Not in GZIP format server端设置了Header 并且压缩结果流 ``` response.setHeader("Content-Type", "text/html;charset=UTF-8"); response.setHeader("Content-Encoding", "gzip"); gzipstream = new GZIPOutputStream(output); ``` 客户端代码如下 CloseableHttpResponse response = defHttpclient.execute(httppost); ``` if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { InputStream inputStream = response.getEntity().getContent(); StringBuffer sb = new StringBuffer(); GZIPInputStream gzin = new GZIPInputStream(inputStream); InputStreamReader isr = new InputStreamReader(inputStream, charSet); String tempbf; long test3 = System.currentTimeMillis(); while ((tempbf = br.readLine()) != null) { sb.append(tempbf); } text_msg = sb.toString(); try { isr.close(); gzin.close(); inputStream.close(); } catch (Exception ex) { logger.error("class Request : when inputStream byteOut", ex); } } ``` 会在这一行报错 GZIPInputStream gzin = new GZIPInputStream(inputStream); 通过这个方法发现 Header headers[] = response.getAllHeaders(); 获得的Header中并没有服务端设置的setHeader("Content-Encoding", "gzip"); 请大佬们帮忙分析分析

为什么使用HttpClient发送json总是返回400?

android手机端需要发送一个json格式的数据,返回的也是json数据。 现在问题出现在,我无论怎么写都返回400,Bad Request。 问题出在哪儿呢?且看代码,感觉该设置的都设置了。 [code="java"] /** * POST获取服务端数据,发送的是json格式的数据 * @param urlString * @param json 需要发送的json数据 * @return * @throws ClientProtocolException * @throws IOException */ public String getDataFromServerByPostForJson(String urlString,JSONObject json) throws ClientProtocolException, IOException{ String strResult = null; HttpClient client = new DefaultHttpClient(); StringEntity entity = new StringEntity(json.toString()); entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));//"application/octet-stream" entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_ENCODING,HTTP.UTF_8)); HttpPost post = new HttpPost(urlString); post.setHeader("Accept", "application/json"); post.setHeader("Content-Type", "application/json"); post.setEntity(entity); HttpResponse response = client.execute(post); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult = EntityUtils.toString(response.getEntity(), HTTP.UTF_8); }else{ post.abort(); strResult = "Error Response code " + response.getStatusLine().getStatusCode() + " :" + response.getStatusLine().toString(); Log.i("tag", strResult); return null; } return strResult; } [/code] 有碰到类似的朋友吗?

使用httpclient得到post请求的结果,但是post请的这种参数怎么搞

![图片说明](https://img-ask.csdn.net/upload/201610/10/1476086567_699407.png)

httpclient中post和get请求

POST请求: new UrlEncodedFormEntity(params, "UTF-8")是不是只能用于post请求 URLEncodedUtils.format(params, "UTF-8")是不是只能用于get请求 还有能不能帮我写一个get请求的例子。 里面有涉及有设置参数的。 如:httpget get = new httpget(); get.setXXX(); httpresponse response = httpclient.execute(get);

httpclient 发送post请求(https),请求体为xml的字符串类型,获取不到数据

![图片说明](https://img-ask.csdn.net/upload/201607/15/1468574841_890886.png) 用fiddler发送请求可以获取到参数,但是用httpclient返回500;求解答 (下面是我的部分代码) ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory(); Protocol.registerProtocol("https", new Protocol("https", fcty, 443)); String response = null; HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod(url); postMethod.getParams().setParameter( HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8"); // 设置Post数据 if (!params.isEmpty()) { String data = "<?xml version=\"1.0\" encoding=\"utf-8\"?><EntityPreMethod><Method>" + params.get("Method") + "</Method><Parameters>" + params.get("Parameters") + "</Parameters><AccessId>******</AccessId></EntityPreMethod>"; System.out.println(data); postMethod.setRequestEntity(new StringRequestEntity(data, "text/xml", "gbk")); postMethod.addRequestHeader("Authorization", "Bearer " + this.getAccessToken()); postMethod.setRequestHeader("Content-Type", "text/xml"); } try { int statusCode = client.executeMethod(postMethod); System.out.println(statusCode); if (statusCode == HttpStatus.SC_OK) { response = postMethod.getResponseBodyAsString();

httpClient使用post请求抓取数据出现异常alert: internal_error

使用HttpClient去抓取网站数据包,出现了javax.net.ssl.SSLException: Received fatal alert: internal_error,异常只打印了这句话,在抓取其他网站的数据使用没问题,可以抓这个网站post请求就出现了这个问题,在执行HttpResponse httpResponse = httpClient.execute(httpRequest); 出现这个问题,大部分post都是没问题的![图片说明] (https://img-ask.csdn.net/upload/201908/18/1566141194_855160.png),报错信息就这么多,后面的就是业务代码了,抓取其他网站是post,get都是没问题,这个网站一post就是出问题了,一直报这个错误,卡在这里很久了,使用原生的post又没有问题,可是这个封装的post也是原生的基础上封装的,大部分都是没问题,请求这个网站就是有问题,求大佬解惑。

请教httpclient()发送异步POST请求时,程序为什么会卡住继续不下去了

想使用httpclient()发送post请求以获得token,部分程序如下图。当程序进行到途中红色代码,即var response=await client.sendasync(request)时,程序没有报错也无提示,就不能继续进行下去了,请本人初学菜鸟,盼请大牛指教。

HttpClient调用接口返回json

java的httpclient发送post请求传入 data , data_digest , msg_type, company_id ,四个参数 调用接口一直返回S02,无法返回我想要的json数据怎么办?

由于CORS问题,无法在Angular中发出HttpClient post请求

<div class="post-text" itemprop="text"> <p>I am developing a Web application using Angular. Backend API is developed using Laravel PHP framework. I enabled the CORS access creating a middleware in the Laravel.</p> <p>This is the Laravel middleware</p> <pre><code>class Cors { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request) -&gt;header('Access-Control-Allow-Headers','X-Requested-With,content-type') -&gt;header('Access-Control-Allow-Origin', '*') -&gt;header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); } } </code></pre> <p>I can successfully make the GET request like this.</p> <pre><code>this.http.get&lt;IEvent[]&gt;(this.globals.API_ENDPOINT + "event/list?email=" + email).subscribe(data=&gt; { //do something with the data }); </code></pre> <p>The above GET request is working fine. But the problem is with making POST request with some parameters.</p> <p>I send the POST request like this.</p> <pre><code>var formData = { name: "My name" } this.http.post&lt;ISimpleForm&gt;(this.globals.API_ENDPOINT + "event/post", formData).subscribe(data=&gt;{ }) </code></pre> <p>As you can see the formData variable is object. When I send the request, I got this error in console.</p> <pre><code>Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin </code></pre> <p>I tried lots of solution online. For example, passing headers with "Content-Type" with "application/json" and so on. None of them helped. I already solved CORS issue in the server side as well.</p> <p>But the request is working when I send the body it as string like this</p> <pre><code>this.http.post&lt;ISimpleForm&gt;(this.globals.API_ENDPOINT + "event/post", formData).subscribe(data=&gt;{ }) </code></pre> <p>The CORS error is gone when I stringify the body. But the problem is when I log the request data in the server side using $_POST, nothing is passed to the request. So the body is empty.</p> <p>So, how can I make post request with some request parameters using HttpClient in Angular? What is wrong with my code and how can I fix it?</p> </div>

java中使用httpclient post请求时报空指针异常

``` maven : <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> ``` 相关代码: ``` HttpPost httppost = new HttpPost("http://localadmin/xxxxx"); List<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("identityNum","xxxxx")); list.add(new BasicNameValuePair("channel","YT")); list.add(new BasicNameValuePair("userId","78652109462")); list.add(new BasicNameValuePair("userName","xxxxx")); list.add(new BasicNameValuePair("realName","xxxxx")); UrlEncodedFormEntity entity ; try { entity = new UrlEncodedFormEntity(list, "utf-8"); httppost.setEntity(entity); ...... ``` 调试发现: ``` 在 super(URLEncodedUtils.format(parameters, charset != null?charset:HTTP.DEF_CONTENT_CHARSET.name()), ContentType.create("application/x-www-form-urlencoded", charset));处报 Method threw 'java.lang.NullPointerException' exception. Cannot evaluate org.apache.http.client.entity.UrlEncodedFormEntity.toString() ``` 有同学遇到过吗?

HttpClient请求返回结果对象HttpEntity处理

HttpClient请求返回结果对象HttpEntity处理转成字符串一串![图片说明](https://img-ask.csdn.net/upload/201706/20/1497950405_70131.png)

HttpClient请求问题

这是报错日志 Caused by: java.io.FileNotFoundException: D:\hdm\lh\hbiparent\core\target\core\META-INF\context.xml (系统找不到指定的文件。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at org.jetbrains.idea.tomcat.TomcatUtil.loadXMLFile(TomcatUtil.java:205) ... 28 moreeManager.jar 2017-08-07 11:07:16,381 [2438700] INFO - ij.compiler.impl.CompileDriver - COMPILATION STARTED (BUILD PROCESS) 2017-08-07 11:07:16,389 [2438708] INFO - j.compiler.server.BuildManager - Using preloaded build process to compile D:\hdm\lh\hbiparent 2017-08-07 11:07:16,764 [2439083] INFO - .server.BuildMessageDispatcher - 远程主机强迫关闭了一个现有的连接。 java.io.IOException: 远程主机强迫关闭了一个现有的连接。 这是代码 public Map<String, String> getSessionId(String userid ) { String token = null; String sessionId = null; http = new DefaultHttpClient(); try { String url = LOGINURL + "&username=" + userid; HttpPost post = new HttpPost(url); // post.setHeader("HYPLOGIN", userid); HttpResponse response = http.execute(post); BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer result = new StringBuffer(); String line; while ((line = br.readLine()) != null) { result.append(line); } String string = result.toString(); // System.out.println(string); string = string.substring(0, 2500); // System.out.println(string); String regex = "sToken.*=.*\"(.+?)\";.*sCSRFToken"; Pattern p = Pattern.compile(regex); Matcher matcher = p.matcher(string); while (matcher.find()) { token = matcher.group(1); } post.abort(); // String mtoken = token.replace("\\n", "\\\n") + "="; // System.out.println(mtoken); HttpPost posthttp = new HttpPost(HTTPURL); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("Application", "FYCWYS")); nvps.add(new BasicNameValuePair("isContained", "true")); nvps.add(new BasicNameValuePair("isWorkspace", "true")); nvps.add(new BasicNameValuePair("LOCALE_LANGUAGE", "zh_CN")); nvps.add(new BasicNameValuePair("moduleid", "HyperionPlanning.planning.7")); nvps.add(new BasicNameValuePair("themeSelection", "BpmTadpole")); nvps.add(new BasicNameValuePair("upk_available", "false")); String mtoken = token.replace("\\n", "\\\n") + "="; nvps.add(new BasicNameValuePair("sso_token", mtoken)); posthttp.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse responseSession = http.execute(posthttp); posthttp.abort(); Header[] headers = responseSession.getHeaders("Set-Cookie"); for (Header header : headers) { if (header.toString().contains("SESSIONID")) { String str = header.toString(); // String reg = "Cookie:(.+?);.*path"; String reg = "JSESSIONID=(.+?);.*path"; Pattern pattern = Pattern.compile(reg); Matcher m = pattern.matcher(str); while (m.find()) { sessionId = m.group(1).trim(); } } } System.out.println(sessionId); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (UnsupportedOperationException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(sessionId); Map<String, String> map = new HashMap<>(); map.put("sessionId",sessionId); return map;

httpclient提交一个请求返回的都是200的状态码,如何判断怎么是成功的怎么是失败的

httpclient提交一个用于登录的请求,但是返回的都是200的状态码,如何判断怎么是成功的怎么是失败的呢?

关于httpclient用法, post提交,抓取数据不全

请教下面纠结的问题: 我用httpclient,post提交参数,抓取指定检索到的的数据(分多个页面,一个页面一次提交请求),大部分抓取的数据都是全的,大概抓取了100左右页面数据,就开始有一页面的数据不全,断断续续,不全的数据是:没有我指定参数提交的检索到的数据(只有静态页面的数据,即:没有业务数据),但是请求返回来的状态是200,也获取不到异常,纠结了好几天;代码: public String clientPost(String urll, String htmlbody) { String[] repParams = htmlbody.split("&"); List<NameValuePair> data = new ArrayList<NameValuePair>(); HttpPost post = new HttpPost(urll); for (String param : repParams) { data.add(new BasicNameValuePair(param.substring(0, param.indexOf("=")), param.substring( param.indexOf("=") + 1, param.length()))); } try { // 参数 post.setEntity(new UrlEncodedFormEntity(data, "utf-8")); // execute post HttpResponse response = httpClient.execute(post); if (response.getStatusLine().getStatusCode() == 200) { a++; System.out.println("第:" + a + "次请求成功"); HttpEntity entity = response.getEntity(); BufferedReader read = new BufferedReader(new InputStreamReader( entity.getContent(), "utf-8")); String currentLine; System.out.println("entity.getContent:" + entity.getContent().toString().length()); StringBuffer buff = new StringBuffer(); while ((currentLine = read.readLine()) != null) { buff.append(currentLine); } System.out.println("buff长度:" + buff.length()); if (buff.length() < 60000) { //数据不全判断 int i = 1; clientPost(urll, htmlbody); System.out.println("第" + (a - i) + "页请求了" + (++i) + "次"); } else { String urlContent = post.getURI().getRawPath() + "\r\n" + post.getRequestLine().toString() + "\r\n" + displayInfo(new UrlEncodedFormEntity(data, "utf-8").getContent()); logContent(urlContent, buff.toString(), a + ".html"); System.out.println("buff:--------------" + buff.toString().length()); return buff.toString(); } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); logNetErr(e); } catch (ClientProtocolException e) { e.printStackTrace(); logNetErr(e); } catch (IOException e) { e.printStackTrace(); logNetErr(e); } finally { post.releaseConnection(); httpClient.getConnectionManager().closeExpiredConnections(); } return null; } 还请各位碰到这样的问题指教下:

用httpclient发送post请求内容为xml格式的!出现错误!请各位高手看下

用httpclient发送post请求内容为xml格式的 //提交的xml格式字符串 StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"GBK\"?><EASYXML"); sb.append("version=\"1.0\"><REQUEST><GET_FEATURES featurelimit=\"10\" beginrecord=\"1\"><LAYER"); sb.append("name=\"L810\" id=\"机构\"><SPATIALQUERY subfields=\"机构名称:机构名称;\"'"); sb.append("dispfield=\"机构名称\" where=\"\"><SPATIALFILTER"); sb.append("relation=\"envelope_intersection\"><CIRCLE xx=\"489766.97021\" yy=\"315646.27148\""); sb.append("radius=\"21145.698156464744\""); sb.append("unit=\"meter\" /></SPATIALFILTER></SPATIALQUERY></LAYER></GET_FEATURES></REQUEST></EASYXML>"); //返回的xml错误 <EASYXML> <RESPONSE result="Error" msg="Error on line 1: &lt;Line 1, Column 52&gt;: XML-20201: (致命错误) 应是 name 而不是 =。" /> </EASYXML> 请各位高手看下!谢谢!

关于java Httpclient post 提交JSon数据的问题

我查出数据库的数据 推送给安卓解析, 由于安卓的接口没有做好,我自己做了个 servlst 进行解析。但是不知道怎么拿值! 这是 推送数据的方法! public static String doPost(String url,JSONArray json){ String result=null; DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); JSONObject response = null; try { StringEntity s = new StringEntity(json.toString()); s.setContentEncoding("UTF-8"); s.setContentType("application/json");//发送json数据需要设置contentType post.setEntity(s); HttpResponse res = client.execute(post); if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ HttpEntity entity = res.getEntity(); result = EntityUtils.toString(res.getEntity());// 返回json格式: // response = JSONObject.fromObject(result); } } catch (Exception e) { throw new RuntimeException(e); } return result; } 一下是 servlst 解析的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("POST请求方式"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); //String param=request.getParameter(""); //接收数据 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" This is "); out.print(this.getClass()); out.println(", using the POST 200 method"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); }

有关java使用httpclient模拟httppost请求的问题!求大神帮忙!

我现在在写一个eclipse的插件,主要是通过java向服务器发出httppost的请求,调用一些比如登陆啊等等的服务器端api。就是模拟浏览器操作 但是现在遇到了一个问题,服务器端的程序要检查浏览器是不是支持javascript的(因为好像服务器的那边根本没有做静态页面,所有的html都是javascript动态加载出来的),所以我现在调不到那边的api了,发送任何请求收到的response都是一样的,都是一个提示您浏览器不支持javascript的错误页面 求问怎么才能越过这一关啊,我用的是apache的httpclient,有没有什么方法能让java模拟发出的post请求也能”支持“javascript啊,谢谢各位了!!感激不尽!

http post 请求 spring mvc 接收参数为NULL 求大神帮助啊

public static JSONObject requestCdi(String url, Map<String, String> params) { log.info("url: {}", url); log.debug("params: {}", params); HttpRequest httpRequest = new HttpRequest(url); httpRequest.setRequestCharset(Configure.get("cdiRequestUrl", "requestCharset")); if (params != null && !params.isEmpty()) { httpRequest.setParams(params); } String result = httpRequest.doPost(); log.debug("response result: {}", result); JSONObject data = JSONObject.fromObject(result); if (!data.getBoolean("success")) { log.error("request cdi error, url: {}, result: {}", url, data); } return data; } public String doPost() { String responseString = null; CloseableHttpClient httpclient = null; try { httpclient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(this.url); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(95 * 1000) .setConnectTimeout(100 * 1000).build(); httpPost.setConfig(requestConfig); httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=" + this.requestCharset); //httpPost.setHeader("Content-Type", "application/json; charset=" + this.requestCharset); //httpPost.setHeader("Accept", "application/json"); if (this.params != null && !this.params.isEmpty()) { List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>(); Entry<String, String> entry = null; for (Iterator<Entry<String, String>> iter = this.params.entrySet().iterator(); iter.hasNext();) { entry = iter.next(); log.info("key is {} ",entry.getKey()); nameValuePairList.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); //entry.getValue() } log.info("nameValuePairList : {} ",nameValuePairList.toString()); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, this.requestCharset)); log.info("httpPost.getEntity() : {} ",httpPost.getEntity().toString()); } HttpResponse httpResponse = httpclient.execute(httpPost); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { if (this.responseCharset == null || "".equals(this.responseCharset)) { this.responseCharset = getCharset(httpResponse); } if (isGzip(httpResponse)) { responseString = EntityUtils.toString(new GzipDecompressingEntity(httpResponse.getEntity()), this.responseCharset); } else { responseString = EntityUtils.toString(httpResponse.getEntity(), this.responseCharset); } } } catch (Exception e) { //log.error("Http post request error: {}", e.getMessage()); e.printStackTrace(); } finally { try { if (httpclient != null) { httpclient.close(); } } catch (IOException e) { log.error(e.toString()); } } return responseString; } 下面是spring mvc 接收 代码 @RequestMapping(value = { "/infoDayHits/{proSymbol:[A-Za-z]+}" }, method = {RequestMethod.GET,RequestMethod.POST}) @ResponseBody public String addInfoDayHit(@PathVariable String proSymbol,String data) { try { log.info("add {} InfoDayHit start...", proSymbol); log.info("data: {}", data); //InfoDayHit infoDayHit = new InfoDayHit(); //ModelData modelData = JsonUtils.toObject(data, ModelData.class); ModelData modelData = JsonUtils.toObject(data, ModelData.class); // key: synchDate -- 2017-11-07 year:2017 mmdd: "1107" // key: infoDayHitsData // infoDayHitsList JsonUtils.toObject(infoDayHitsData, ModelData[].class) // for each infoDayHitsList ModelData --key infoId; key dayHits String year = modelData.get("synchDate").toString().substring(0,4); String mmDD = modelData.get("synchDate").toString().substring(5).replace("-", ""); log.info("year: {}", year); log.info("mmDD: {}", mmDD); //modelData.get("infoDayHitsData") @SuppressWarnings("rawtypes") List hitData = (List) modelData.get("infoDayHitsData"); infoDayHitService.addInfoDayHit(hitData, proSymbol, year, mmDD); log.info("add InfoDayHit end..."); //return R.success(); }catch (Exception e) { log.error(e.toString()); } return R.success(); } 接收到的 data 打印 为null,但是在别的服务器上 测试 是可以 接收到 参数的

我想通过HttpClient发送一个请求给后台,后台给我一个响应(带参数的响应),怎么实现?

后台的Action层是Struts2,我想返回一个字符串作为响应,但是Struts2不让返回,如何实现?

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

玩转Python-Python3基础入门

总课时80+,提供源码和相关资料 本课程从Python零基础到纯Python项目实战。内容详细,案例丰富,覆盖了Python知识的方方面面,学完后不仅对Python知识有个系统化的了解,让你从Python小白变编程大牛! 课程包含: 1.python安装 2.变量、数据类型和运算符 3.选择结构 4.循环结构 5.函数和模块 6.文件读写 7.了解面向对象 8.异常处理

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:itxy41)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

基于VHDL的16位ALU简易设计

基于VHDL的16位ALU简易设计,可完成基本的加减、带进位加减、或、与等运算。

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

利用Verilog实现数字秒表(基本逻辑设计分频器练习)

设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。 设置启/停开关。当按下启/停开关后,将

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

计算机操作系统 第三版.pdf

计算机操作系统 第三版 本书全面介绍了计算机系统中的一个重要软件——操作系统(OS),本书是第三版,对2001年出版的修订版的各章内容均作了较多的修改,基本上能反映当前操作系统发展的现状,但章节名称基

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

SEIR课程设计源码与相关城市数据.rar

SEIR结合学报与之前博客结合所做的一些改进,选择其中三个城市进行拟合仿真SEIR结合学报与之前博客结合所做的一些改进,选择其中三个城市进行拟合仿真SEIR结合学报与之前博客结合所做的一些改进,选择其

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

GIS程序设计教程 基于ArcGIS Engine的C#开发实例

张丰,杜震洪,刘仁义编著.GIS程序设计教程 基于ArcGIS Engine的C#开发实例.浙江大学出版社,2012.05

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

去除异常值matlab程序

数据预处理中去除异常值的程序,matlab写成

用verilog HDL语言编写的秒表

在秒表设计中,分模块书写。用在七段数码管上显示。输入频率是1KHZ.可以显示百分秒,秒,分。如要显示小时,只需修改leds里的代码和主模块代码。改程序以通过硬件电路验证。完全正确。

[透视java——反编译、修补和逆向工程技术]源代码

源代码。

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问