精华内容
下载资源
问答
  • libcurl 以JSON模式post

    2017-11-07 16:46:42
    libcurl 以JSON模式post。VS2013.代码齐全。里面有JSON库已经libcurl的库
  • java 通过发送json,post请求,返回json数据的方法 java 通过发送json,post请求,返回json数据的方法
  • java 通过发送json,post请求,返回json数据

    万次阅读 多人点赞 2017-06-03 17:23:21
    java 通过发送json,post请求,返回json数据
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    public class GetJsonData {
    
    	public static String getJsonData(JSONObject jsonParam,String urls) {
    		StringBuffer sb=new StringBuffer();
    		try {
    			;
    			// 创建url资源
    			URL url = new URL(urls);
    			// 建立http连接
    			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    			// 设置允许输出
    			conn.setDoOutput(true);
                            // 设置允许输入
                            conn.setDoInput(true);
                           // 设置不用缓存
                           conn.setUseCaches(false);
                           // 设置传递方式
                           conn.setRequestMethod("POST");
                           // 设置维持长连接
                            conn.setRequestProperty("Connection", "Keep-Alive");
                           // 设置文件字符集:
                           conn.setRequestProperty("Charset", "UTF-8");
                           // 转换为字节数组
                           byte[] data = (jsonParam.toString()).getBytes();
                          // 设置文件长度
                           conn.setRequestProperty("Content-Length", String.valueOf(data.length));
                          // 设置文件类型:
                          conn.setRequestProperty("contentType", "application/json");
                            // 开始连接请求
                           conn.connect();		
                        OutputStream out = new DataOutputStream(conn.getOutputStream()) ;
    			// 写入请求的字符串
    			out.write((jsonParam.toString()).getBytes());
    			out.flush();
    			out.close();
    
    			System.out.println(conn.getResponseCode());
    			
    			// 请求返回的状态
    			if (HttpURLConnection.HTTP_OK == conn.getResponseCode(){
    				System.out.println("连接成功");
    				// 请求返回的数据
    				InputStream in1 = conn.getInputStream();
    				try {
    				      String readLine=new String();
    				      BufferedReader responseReader=new BufferedReader(new InputStreamReader(in1,"UTF-8"));
    				      while((readLine=responseReader.readLine())!=null){
    				        sb.append(readLine).append("\n");
    				      }
    				      responseReader.close();
    				      System.out.println(sb.toString());
    					
    				} catch (Exception e1) {
    					e1.printStackTrace();
    				}
    			} else {
    				System.out.println("error++");
    				
    			}
    
    		} catch (Exception e) {
    
    		}
    		
    		return sb.toString();
    
    	}
    	public static void main(String[] args) {
    		JSONObject jsonParam = new JSONObject();
    		jsonParam.put("id", "1401_1406");
    		jsonParam.put("device_size", "480x720");
    		String url="www.baidu.com";
    		String data=GetJsonData.getJsonData(jsonParam,url);
                    //返回的是一个[{}]格式的字符串时:                               
                    JSONArray jsonArray = new JSONArray(data);                       
                   //返回的是一个{}格式的字符串时:                       
                   /*JSONObject obj= new JSONObject(data);*/      
        }
    }
    
    
    
    
    
    展开全文
  • curl命令模拟json格式的post请求

    万次阅读 2017-09-06 08:48:57
    curl命令 模拟json格式的post请求测试接口 curl -H "Content-Type:application/json" -X POST --data '

    #curl命令模拟json格式的post请求
    测试接口时,如果是get请求直接在浏览器上附上参数就可
    例如:https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd=浪丶荡csdn

    而post请求可以利用Linux的curl命令这样模拟

    curl -H "Content-Type:application/json" -X POST --data '[{"index":["*"],"preference":"1503652289983","ignore_unavailable":"true"},{"sort":[{"timestamp":{"order":"desc"}}],"query":{"must_not":[],"bool":{"must":[{"query_string":{"query":"cluster"}},{"range":{"timestamp":{"gte":"1503667558137","lte":"1503667558137"}}}]}},"from":"0","size":"500","version":"true"}]' http://212.35.247.184:18080/
    

    json串内层参数需要符合json格式规范,最后的ip是目的主机的地址和端口号




    如果觉得对你有用,就把单买一下再走!

    ---->买单<–





    展开全文
  • RestTemplate使用JSON发送Post请求

    万次阅读 2019-09-01 16:56:44
    RestTemplate使用JSON发送Post请求 本文我们说下如何使用Spring的 RestTemplate调用post请求,发送json内容。 1. 定义服务端web接口 1.1. 定义业务接口 先定义Person实体类表示post请求的数据: public class ...

    RestTemplate使用JSON发送Post请求

    本文我们说下如何使用Spring的 RestTemplate调用post请求,发送json内容。

    1. 定义服务端web接口

    1.1. 定义业务接口

    先定义Person实体类表示post请求的数据:

    public class Person {
        private Integer id;
        private String name;
     
        // standard constructor, getters, setters
    }
    

    再定义PersonService接口并实现两个方法,关联使用Person类:

    public interface PersonService {
     
        public Person saveUpdatePerson(Person person);
        public Person findPersonById(Integer id);
    }
    

    这些方法的实现仅返回对象,不再具体讨论,让我们聚焦web层。

    1.2. 定义业务REST API

    下面我们为Person类定义简单的Rest api:

    @PostMapping(value = "/createPerson", consumes = "application/json", produces = "application/json")
    public Person createPerson(@RequestBody Person person) {
        return personService.saveUpdatePerson(person);
    }
     
    @PostMapping(value = "/updatePerson", consumes = "application/json", produces = "application/json")
    public Person updatePerson(@RequestBody Person person, HttpServletResponse response) {
        response.setHeader("Location", ServletUriComponentsBuilder.fromCurrentContextPath()
          .path("/findPerson/" + person.getId()).toUriString());
         
        return personService.saveUpdatePerson(person);
    }
    

    我们需要发送json格式post请求数据,为此,在两个方法的@PostMapping中增加consumes属性并设置值为“application/json”。类似的,设置produces属性值为“application/json”,为了告诉Spring我们希望响应数据也是json格式。

    person参数前的注解@RequestBody,表明person对象和http请求体绑定。最后两个方法返回Person对象会绑定至http响应体。如果给api类增加@RestController注解,则所有api方法都带有@ResponseBody注解。

    2. 使用RestTemplate

    现在写几个单元测试,测试Person rest api。我们尝试使用RestTemplate发送post请求给Person api,共三个方法: postForObject, postForEntity, and postForLocation。

    开始实现单元测试之前,先定义setup方法初始化单元测试方法中使用的对象:

    @BeforeClass
    public static void runBeforeAllTestMethods() {
        createPersonUrl = "http://localhost:8082/spring-rest/createPerson";
        updatePersonUrl = "http://localhost:8082/spring-rest/updatePerson";
     
        restTemplate = new RestTemplate();
        headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        
       ObjectNode personJsonObject = objectMapper.createObjectNode();
       personJsonObject.put("id", 1);
       personJsonObject.put("name", "John");
    }
    

    除了setup方法,还要引入ObjectMapper对象转换JSON字符串为JSONNode对象:

    private final ObjectMapper objectMapper = new ObjectMapper();
    

    我们前面提到,post请求数据使用json格式。因此,在请求头中增加 Content-Type属性,值为APPLICATION_JSON 。Spring的 HttpHeaders提供不同的方法访问请求头信息。这里需要通过setContentType方法设置Content-Type 属性值为 application/json。然后给请求对象附加头信息。

    2.1. 使用postForObject方法发送json

    RestTemplate的postForObject 方法post对象给uri并返回新的对象。返回值自动被转换为responseType参数指定的类型,这里是字符串。

    我们的需求是发送post请求至person api,创建新的Person对象并响应中包括新创建的对象。
    首先,基于personJsonObject构建HttpEntity 类型的请求对象,并在请求头中指定Content-Type。然后调用postForObject 方法发送json请求体:

    @Test
    public void givenDataIsJson_whenDataIsPostedByPostForObject_thenResponseBodyIsNotNull()
      throws IOException {
        HttpEntity<String> request = new HttpEntity<String>(personJsonObject.toString(), headers);
         
        String personResultAsJsonStr = restTemplate.postForObject(createPersonUrl, request, String.class);
        JsonNode root = objectMapper.readTree(personResultAsJsonStr);
         
        assertNotNull(personResultAsJsonStr);
        assertNotNull(root);
        assertNotNull(root.path("name").asText());
    }
    

    该示例中 postForObject() 方法返回字符串响应体。我们也可以通过设置responseType参数使其返回Person类型:

    Person person = restTemplate.postForObject(createPersonUrl, request, Person.class);
     
    assertNotNull(person);
    assertNotNull(person.getName());
    

    实际上我们的请求处理方法(createPersonUrl 参数匹配的)产生json格式的响应体,但对postForObject 方法没有限制,通过设置responseType参数可以自动转换为响应的java类型。

    2.2. 使用postForEntity发送json

    相比于postForObject()方法, postForEntity() 返回响应体为 ResponseEntity 类型,其他两个方法功能一致。

    我们的需求是发送post请求至person api,创建新的Person对象并返回ResponseEntity类型响应体。可以使用postForEntity实现该功能:

    @Test
    public void givenDataIsJson_whenDataIsPostedByPostForEntity_thenResponseBodyIsNotNull()
      throws IOException {
        HttpEntity<String> request = new HttpEntity<String>(personJsonObject.toString(), headers);
         
        ResponseEntity<String> responseEntityStr = restTemplate.
          postForEntity(createPersonUrl, request, String.class);
        JsonNode root = objectMapper.readTree(responseEntityStr.getBody());
      
        assertNotNull(responseEntityStr.getBody());
        assertNotNull(root.path("name").asText());
    }
    

    类似的,也可以设置responseType 参数转换响应体为Java类型。这里我们能够返回响应体为ResponseEntity,也能返回响应为 ResponseEntity 对象,只要设置responseType参数为 Person.class:

    ResponseEntity<Person> responseEntityPerson = restTemplate.
      postForEntity(createPersonUrl, request, Person.class);
      
    assertNotNull(responseEntityPerson.getBody());
    assertNotNull(responseEntityPerson.getBody().getName());
    

    2.3. 使用postForLocation发送json

    与postForObject 和 postForEntity 方法类型, postForLocation 也发送post请求至特定uri并创建新的对象。唯一的差异是返回值为Location头信息。

    前面updatePerson rest api在响应中设置Location 头信息:

    response.setHeader("Location", ServletUriComponentsBuilder.fromCurrentContextPath()
      .path("/findPerson/" + person.getId()).toUriString());
    

    现在我们需要实现更新person对象后接收返回带有Location头信息的响应,使用postForLocation 方法:

    @Test
    public void givenDataIsJson_whenDataIsPostedByPostForLocation_thenResponseBodyIsTheLocationHeader() 
      throws JsonProcessingException {
        HttpEntity<String> request = new HttpEntity<String>(personJsonObject.toString(), headers);
        URI locationHeader = restTemplate.postForLocation(updatePersonUrl, request);
         
        assertNotNull(locationHeader);
    }
    

    3. 总结

    本文讲解了RestTemplate 如何发送json类型的post请求,共三种方法应用与不同场景。

    展开全文
  • RestTemplate POST请求json和xml

    千次阅读 2019-09-10 10:33:25
    RestTemplate POST请求: Application/json; Application/xml

    配置RestTemplateConfig类

    @Configuration
    public class RestTemplateConfig {
    
        @Bean
        public RestTemplate restTemplate(ClientHttpRequestFactory factory){
            return new RestTemplate(factory);
        }
    
        @Bean
        public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setConnectTimeout(12000);
            factory.setReadTimeout(12000);
            return factory;
        }
    
    }
    

    依赖注入

    @Autowired
    private RestTemplate restTemplate;
    

    Application/json格式

    // req 为请求的vo类
    String rsp = restTemplate.postForObject(url, req, String.class);
    

    Application/xml格式

    HttpHeaders requestHeader = new HttpHeaders();
    requestHeader.setContentType(MediaType.APPLICATION_XML);
    StringBuffer xmlString = new StringBuffer();
    xmlString.append("<message>")
          .append("<QueryTime>2019.09.09 17:13:04</QueryTime>")
          .append("<ReportCreateTime>2019.09.09 17:13:05</ReportCreateTime>")
          .append("</message>");
    
    // 创建 HttpEntity
    HttpEntity<String> requestEntity = new HttpEntity<>(xmlString.toString(), requestHeader);
    ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8091/strmGuide/test", requestEntity, String.class);
    System.out.println(responseEntity.getBody());
    
    展开全文
  • httpclient post传递json和文件

    千次阅读 2018-12-29 16:06:45
    httpclient post传递json并获取远程返回数据 HttpClient 发送请求接收请求都比较简单,在传递数据的时候需要注意一下,最近刚好用到,亲测完记录一下。httpclient不同版本直接的包差异比较大,我用的版本是 ...
  • 以下会依次列举常见的几种请求类型 : get , post param , post json , post file GET /** * get类型的 * * @param url * @throws ClientProtocolException * @throws IOException */ public stati...
  • 使用json方式POST提交

    千次阅读 2019-03-19 10:43:39
    * json参数方式POST提交 * * @param url需要访问的路径 * @param params传入的json格式的参数 * @return */ public static String doPostJson(String url, JSONObject params) { String strResult...
  • 使用urlconnection和json发送post请求到服务器2010-02-22 13:02客户端:****HttpURLConnection连接服务器**1、通过后台得到sessionID*2、检查MAC地址是否正确*3、处理从服务器读取的JSON对象*4、从服务器读取对象*5...
  • HttpPost请求和JSON解析

    2014-02-17 18:17:43
    简单的HttpPost请求和JSON解析 【包含完整的注释,适合初学者学习】
  • httpclient post json 数据

    2017-03-24 23:32:36
    利用c# httpclient ,post json数据到web api
  • <div class="post-text" itemprop="text"> <pre><code>$client = new Client(); $url = 'api-url';...<p>I need to make a POST request with some json. How can I do that with Guzzle in Laravel? </div>
  • 获取 application/jsonpost数据 $postjson = file_get_contents("php://input"); 如上方式也可以获取 application/xml 的post数据 application/xml and text/xml的区别 经常看到有关xml时提到”...
  • Alamofire post json

    千次阅读 2016-05-03 09:16:36
    使用Alamofire框架post json数据  func getappToken() ->String {  var path ="http://xxx.com/v1/app/token/request_token"  let params:NSMutableDictionary =NSMutableDictionary()
  • WP7 - RestSharp + JSON Http Post

    千次阅读 2012-03-19 16:42:56
    wp7应用中使用RestSharp提交到使用json格式的 http post api,折腾了半天发现,用RestRequest.AddParameter方法添加类型为body的参数不可行:RequestBodyIf this parameter is set, it’s value will be sent as the...
  • OkHttp Post提交json数据

    万次阅读 2019-01-25 09:54:53
    new Thread() { @Override public void run() { // @Headers({"Content-Type: application/json","Accept: application/json"})//需要添加头 MediaType JSON = ...
  • 1,JSON.parse将一个 JSON 字符串转换为对象 2,JSON.stringify将对象转成字符串 JSON.parse()【从一个字符串中解析出json对象】 例子: //定义一个字符串 var data='{"name":"goatling"}' //解析对象​ ​...
  • c#下post multipart/form-data和JSON

    热门讨论 2017-01-09 11:47:09
    c#下post 发送 multipart/form-data和JSON数据
  • AFNetworking POST JSON数据

    2014-12-31 01:46:57
    用AFNetworking怎么POST一个JSON数据给服务器
  • curl post 发送json

    千次阅读 2019-01-03 09:38:22
    * post 发送json Example#1: ** post.php <?php $ch = curl_init(); $headers = [ "X-Requested-With: XMLHttpRequest", "Content-Type: application/json", "Cookie: etsessionid=2k4pjijh9h1vm...
  • shell脚本 带json curl post

    千次阅读 2018-10-23 17:25:44
    curl -X POST \  http://******* \  -H 'host:****.com' \  -H 'content-type: multipart/form-data' \  -H 'boundary=----********' \  -F ts=`date '+%s'` \  -F 'data={"extend":{"***"...
  • php post json参数的传递接收处理

    万次阅读 2017-04-27 12:51:39
    http php post json参数的传递接收处理
  • Jmeter 使用json发送post请求

    千次阅读 2018-12-20 13:21:47
    Apache JMeter是一款纯java编写负载功能测试性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一 但是我是开发啊。。。。 2...
  • string strPost = new Utils().getPost(context); var obj = new { name = "", age = "" }; obj = JSONHelper.JsonToObject(strPost, obj); public string getPost(HttpContext cont
  • 使用Volley提交Json数据post

    千次阅读 2016-03-28 13:28:33
    使用以下代码的时候,getParams()传递post请求,根本没有用,只能在构造方法里面传递JsonObject。在servlet中只能使用request.getInputStream()来获取输入流。因为没有设置对象的键值对,所以getParameter()也是...
  • application/json 四种常见的 POST 提交数据方式

    万次阅读 多人点赞 2018-11-13 16:00:11
    application/json 四种常见的 POST 提交数据方式 转载声明: 本文系转载自以下两篇文章: 四种常见的 POST 提交数据方式 作者: 沧海一滴 转载仅为方便学习查看,一切权利属于原作者,本人只是做了整理排版,...
  • AFNetworking Post JSON数据

    千次阅读 2017-12-28 12:06:09
    AFNetworking Post JSON数据,两种方法,都可以用下面分开介绍 使用AFNetworking3.0后网络请求由原来的AFHTTPRequestOperationManager变为AFHTTPSessionManager。一般的Post请求变成了这样:  ...
  • Qt使用http协议进行Json格式post数据

    千次阅读 2019-10-18 16:54:52
    使用Qt进行post数据 近段时间项目遇到使用http协议进行post请求,简单逻辑就是post一段请求到url,等待url回复,若一定时间内没有受到回复则按超时处理。这里直接上post相关代码以及阻塞处理消息的相关代码。 先加上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 562,224
精华内容 224,889
关键字:

json和post