`

post请求加json参数方式二

 
阅读更多
package com.teamdev.jxbrowser.chromium.demo.tujia;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.X509TrustManager;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.helper.HttpConnection;
import org.jsoup.select.Elements;

public class GetTujiaHtml {

public static String testPost(String urlStr,String param,String id) { 
        try { 
            URL url = new URL(urlStr); 
         
           
            URLConnection con1 = url.openConnection();
            HttpURLConnection con = (HttpURLConnection)con1;
        
            // 发送POST请求必须设置如下两行
            con.setDoOutput(true);
            con.setDoInput(true);
            con.setRequestMethod("POST");
        
           
            con.setRequestProperty("Accept", "application/json, text/plain, */*");
            con.setRequestProperty("Accept-Encoding", "gzip, deflate, br");
    con.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
    con.setRequestProperty("Cookie", "__guid=195168682.753543604333822000.1532336993597.7224; tujia.com_PortalContext_RefUrl=https://www.tujia.com/gongyu/sanya/hp2/; tujia.com_PortalContext_LongerRefUrl=https://www.tujia.com/gongyu/sanya/hp2/; tujia.com_PortalContext_GuestToken=9ce24447-88df-4203-9a0a-d0099e9c8909; tujia.com_PortalContext_GuestId=-1002633651; tujia.com_PortalContext_LandingUrl=http://www.tujia.com/UI/Float?callback=TJPFloating.BuildHTML&PlatformType=pc; manualclose=1; tujia.com_PortalContext_UserClickKeywordRecord=; tujia.com_PortalContext_UserSessionId=e24aac71-40be-4038-a335-666d04863f58; JSESSIONID=33191E49AED12512A01F9B589BE3EE92; tujia.com_PortalContext_DestinationId=1; monitor_count=12; tujia.com_PortalContext_StartDate=2018-7-24; tujia.com_PortalContext_EndDate=2018-7-25; gr_user_id=9e67650c-c645-43b5-a92c-8f31cebad486; _ga=GA1.2.605216747.1532336995; _gid=GA1.2.557490446.1532336995; Hm_lvt_405c96e7f6bed44fb846abfe1f65c6f5=1532336995; Hm_lpvt_405c96e7f6bed44fb846abfe1f65c6f5=1532401783; accessId=797098a0-b29d-11e5-b3b1-49764155fe50; pageViewNum=11; bad_id797098a0-b29d-11e5-b3b1-49764155fe50=2b8f7bd1-8e58-11e8-a1e8-d587156eb665; nice_id797098a0-b29d-11e5-b3b1-49764155fe50=2b8f7bd2-8e58-11e8-a1e8-d587156eb665; tujia.com_PortalContext_UserId=0; gr_session_id_1fa38dc3b3e047ffa08b14193945e261=80ebee6f-ca30-4970-bd76-3ae658c0fc0e; gr_session_id_1fa38dc3b3e047ffa08b14193945e261_80ebee6f-ca30-4970-bd76-3ae658c0fc0e=false");
    con.setRequestProperty("Connection", "keep-alive");
    con.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
    con.setRequestProperty("Host", "www.tujia.com");
    con.setRequestProperty("Origin", "https://www.tujia.com");
    con.setRequestProperty("Referer", "https://www.tujia.com/detail/"+id+".htm");
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
            OutputStreamWriter out = new OutputStreamWriter(con 
                    .getOutputStream());     
            //String xmlInfo = getXmlInfo(); 
            //System.out.println("urlStr=" + urlStr); 
            //System.out.println("xmlInfo=" + xmlInfo); 
            //out.write("{\"getStoreInfosSearchDTO\":{\"appId\":\"b3ad5aba-ae1e-4f4b-ba55-c5fb0375de3c\",\"areaCode\":\"3-110112\",\"filter\":{\"areaCode\":\"\",\"distance\":\"\",\"govGrade\":\"\",\"marketCode\":\"\",\"restaurantType\":\"\",\"tradeAreaCode\":\"\"},\"lat\":\"39.966983795166\",\"lng\":\"116.30883026123\",\"pageIndex\":"+pageIndex+",\"pageSize\":20,\"userId\":\"a6b75273-0153-44e4-be0d-29cf006ebb22\"}}");
            out.write(param);
            //out.write(new String(xmlInfo.getBytes("ISO-8859-1"))); 
            out.flush(); 
            out.close(); 
            BufferedReader br = new BufferedReader(new InputStreamReader(con 
                    .getInputStream())); 
            String line = ""; 
            for (line = br.readLine(); line != null; line = br.readLine()) { 
                //System.out.println(line);
            return line;
            } 
          
        } catch (MalformedURLException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }
return null; 
    }

public static String GetSearch2(String param,String page,String id) throws Exception {
String body = "";
HttpPost httpPost = new HttpPost(
"https://www.tujia.com/bingo/pc/comment/searchUnitComments");
CloseableHttpClient client = HttpClients.createDefault();
// Map<String, String> map = new HashMap<String, String>();
// map.put("hasPic", "false");
// map.put("pageIndex", page);
// map.put("pageSize", "10");
// map.put("unitId", id);
// map.put("recommended", "false");
// // 装填参数
// List<NameValuePair> nvps = new ArrayList<NameValuePair>();
// if (map != null) {
// for (Entry<String, String> entry : map.entrySet()) {
// nvps.add(new BasicNameValuePair(entry.getKey(), entry
// .getValue()));
// }
// }
// // 设置参数到请求对象中
// httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
// 设置header信息
// 指定报文头【Content-type】、【User-Agent】
httpPost.setHeader("Accept", "application/json, text/plain, */*");
            httpPost.setHeader("Accept-Encoding", "gzip, deflate, br");
    httpPost.setHeader("Accept-Language", "zh-CN,zh;q=0.8");
    httpPost.setHeader("Cookie", "__guid=195168682.753543604333822000.1532336993597.7224; tujia.com_PortalContext_RefUrl=https://www.tujia.com/gongyu/sanya/hp2/; tujia.com_PortalContext_LongerRefUrl=https://www.tujia.com/gongyu/sanya/hp2/; tujia.com_PortalContext_GuestToken=9ce24447-88df-4203-9a0a-d0099e9c8909; tujia.com_PortalContext_GuestId=-1002633651; tujia.com_PortalContext_LandingUrl=http://www.tujia.com/UI/Float?callback=TJPFloating.BuildHTML&PlatformType=pc; manualclose=1; tujia.com_PortalContext_UserClickKeywordRecord=; tujia.com_PortalContext_UserSessionId=e24aac71-40be-4038-a335-666d04863f58; JSESSIONID=33191E49AED12512A01F9B589BE3EE92; tujia.com_PortalContext_DestinationId=1; monitor_count=12; tujia.com_PortalContext_StartDate=2018-7-24; tujia.com_PortalContext_EndDate=2018-7-25; gr_user_id=9e67650c-c645-43b5-a92c-8f31cebad486; _ga=GA1.2.605216747.1532336995; _gid=GA1.2.557490446.1532336995; Hm_lvt_405c96e7f6bed44fb846abfe1f65c6f5=1532336995; Hm_lpvt_405c96e7f6bed44fb846abfe1f65c6f5=1532401783; accessId=797098a0-b29d-11e5-b3b1-49764155fe50; pageViewNum=11; bad_id797098a0-b29d-11e5-b3b1-49764155fe50=2b8f7bd1-8e58-11e8-a1e8-d587156eb665; nice_id797098a0-b29d-11e5-b3b1-49764155fe50=2b8f7bd2-8e58-11e8-a1e8-d587156eb665; tujia.com_PortalContext_UserId=0; gr_session_id_1fa38dc3b3e047ffa08b14193945e261=80ebee6f-ca30-4970-bd76-3ae658c0fc0e; gr_session_id_1fa38dc3b3e047ffa08b14193945e261_80ebee6f-ca30-4970-bd76-3ae658c0fc0e=false");
    httpPost.setHeader("Connection", "keep-alive");
    httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
    httpPost.setHeader("Host", "www.tujia.com");
    httpPost.setHeader("Origin", "https://www.tujia.com");
    httpPost.setHeader("Referer", "https://www.tujia.com/detail/"+id+".htm");
    httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
    //设置请求体
    httpPost.setEntity(new StringEntity(param));
// RequestConfig requestConfig = RequestConfig.custom()
// // .setProxy(proxy)
// .setConnectTimeout(10000).setSocketTimeout(10000)
// .setConnectionRequestTimeout(3000).build();
// // httpPost.setConfig(requestConfig);
// 执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = client.execute(httpPost);
// 获取结果实体
HttpEntity entity = response.getEntity();
if (entity != null) {
// 按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, "UTF-8");
}
EntityUtils.consume(entity);
// 释放链接
response.close();
System.out.println(body);
//Document doc = Jsoup.parse(body);
return body;
}

public static void main(String[] args) {
try {
String id ="17825";
String param="{\"hasPic\": false, \"pageIndex\": 2, \"pageSize\": 10, \"unitId\": \"17825\",\"recommended\": false}";
String html =GetSearch2("https://www.tujia.com/bingo/pc/comment/searchUnitComments",param,id);
System.out.println(html);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

    C++通过HTTP请求Post方式请求Json数据示例程序

    最近在工作中,由于合作商只提供uRL,我这边需要通过HTTP请求Get或Post方式请求Json数据,然后解析JSON格式,解析json我使用的第三方库rapidjson。开发环境是64位win7,VS2015。

    java 通过发送json,post请求,返回json数据的方法

    java 通过发送json,post请求,返回json数据的方法 java 通过发送json,post请求,返回json数据的方法

    HttpClient发送post请求传输json数据

    在这个场景中,我们关注的是如何使用HttpClient来发送POST请求并传输JSON数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于API接口的数据传递。 首先,我们需要引入Apache HttpClient...

    Qt post请求发送和解析json数据完整示例,有完整的设置框架,可以发送和解析多个post请求

    在Qt框架中,进行POST请求并处理JSON数据是常见的任务,尤其在开发网络应用程序时。以下是一个关于如何在Qt中实现这一功能的详细说明。 首先,确保已经安装了Qt库,特别是Qt网络模块,该模块提供了对HTTP协议的支持...

    HttpPost请求和JSON解析

    通过运行和调试这些代码,你将能够深入理解`HttpPost`请求的创建过程以及如何有效地解析接收到的JSON数据。 总之,掌握`HttpPost`请求和`JSON`解析对于任何网络相关的应用程序开发都至关重要。理解并熟练运用这两个...

    Qt 写的http 请求使用POST Json

    在这个例子中,JSON数据会被转换成字符串,然后作为POST请求的主体内容。 为了将JSON数据转换为UTF-8编码,我们可以使用QString的toUtf8()方法。UTF-8是一种常见的字符编码,能表示Unicode字符集中的所有字符,对于...

    Qt工程中用curl发送post请求,发送json返回json

    在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...

    Unity 中通过UnityWebRequest POST传JSON格式的参数请求数据。

    Unity 中通过UnityWebRequest 以POST形式传JSON格式(键值对格式)的参数请求数据。

    java代码发送JSON格式的httpPOST请求

    下面将详细解析如何利用`HttpURLConnection`来构建并发送一个包含JSON数据的POST请求: ```java import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io....

    C++实现的服务器post访问并实现JSON数据流解析

    在本文中,我们将深入探讨如何...在给定的项目中,`Httppost`文件很可能是实现这些功能的源代码,包含了POST请求的发送和JSON数据解析的细节。通过分析和理解这个文件,你可以更深入地学习C++在服务器编程中的应用。

    Java Http请求传json数据乱码问题的解决

    在Java代码中,当通过HTTP请求传输包含中文的JSON数据时,前端通常会使用JavaScript的`JSON.stringify`函数将JSON对象转换为字符串,并通过GET或POST请求传递给后端。在JavaScript中,字符串默认使用UTF-8编码,因此...

    android发送post请求获取json字符串

    总结来说,Android发送POST请求获取JSON字符串涉及到网络请求的实现、参数封装、请求发送、JSON解析以及错误处理等多个环节。选择合适的网络库能提高效率,而合理处理服务器返回的数据则能提升用户体验。在实际项目...

    使用axios发送post请求,将JSON数据改为form类型的示例

    通常前端通过POST请求向服务器端提交数据格式有4中,分别是”application/x-www-form-urlencoded”格式、” multipart/form-data”格式、”application/json”格式和”text/xml”格式。通常最常见的是”application/...

    kettle抽取http请求,发送json参数.docx

    kettle抽取http请求,发送json参数是指使用kettle工具从http接口中抽取数据,并将抽取的数据发送到目标系统中。这里的http请求是指从外部系统中获取数据,而不是指kettle自身的http请求。 描述解释 kettle抽取http...

    使用java请求json接口数据

    在Java编程中,请求JSON接口数据是常见的网络通信任务,主要应用于Web服务的客户端与服务器之间的数据交互。这里我们将深入探讨如何使用Java来获取指定接口的JSON数据,并涉及`HttpServletRquest`类的重要作用。 ...

    狼王-HttpPost请求和JSON解析

    在HttpPost请求中,我们可能需要将Java对象转换为JSON格式发送到服务器,或者从服务器返回的JSON数据中解析出我们需要的信息。这就需要用到上述的JSON处理库。 在实际操作中,"HttpRequestDemo"可能是一个Java代码...

    httpclient post json 数据

    "httpclient post json数据"这个主题就是关于如何使用C#的HttpClient类来向Web API发送POST请求,并且以JSON格式传输数据。下面将详细解释这一过程。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的...

    C#使用Http Post方式传递Json数据字符串调用Web Service

    C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service。最后选择使用Post方式来调用Web Service

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

Global site tag (gtag.js) - Google Analytics