使用Google浏览器开发者工具学习HTTP请求记录

GET请求

1.Google浏览器开发者工具截图图示

GET请求

2.General
  • Request URL :为请求链接
  • Status Code :为HTTP响应状态码
3.ResponseHeaders :响应头
4.Request Headers :请求头
  • 留意请求头内无Content-Type
5.Query String Parameters :GET 请求参数

POST请求(正常表单提交)

正常表单提交POST请求

1.其他同上
2.Request Headers :请求头
  • 注意Content-Type:application/x-www-form-urlencoded,与其他POST方式做对比
3.Form Data :post传递的值
  • 格式与GET请求一致

POST请求(AJAX未指定请求头RequestHeader)

AJAX提交POST请求

1.其他同上
2.Request Headers :请求头
  • 注意Content-Type:text/plain;charset=UTF-8
  • 有些未带charset=UTF-8
3.Request Payload :post传递的值,Form Data不见了
  • 另外格式也与GET请求一致

POST请求(JSON传递参数)

Post请求(JSON传递参数)

1.其他同上
2.Request Payload :传递的值
  • 注意字符串格式为json,与上面3种方式都不同

结论

前面3种都与常规方式一样,主要是第4种方式

1. 模拟POST请求传递JSON参数(PHP)

<?php
    $url = "http://www.111.com";
    $post['vin'] = "12312435";

    //$post参数需要json_encode
    $json = _curl_post($url, json_encode($post));
    //$json为返回值,示例为返回JSON字符串
    $data = json_decode($json, true);
    //告诉浏览器输出为json字符串
    header("Content-Type:application/json; charset=UTF-8"); 
    echo $data['d']['Data'];

    function _curl_post($url, $post) {  
        if ($url) {
            //告诉服务端提交的为JSON参数
            $header[] = "Content-Type:application/json; charset=UTF-8"; 

            $options = array(
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HTTPHEADER     => $header,
                CURLOPT_POST           => 1,
                CURLOPT_ENCODING       => 'gzip,deflate',
                CURLOPT_POSTFIELDS     => $post
            );

            $ch = curl_init($url);
            curl_setopt_array($ch, $options);
            $result = curl_exec($ch);
            curl_close($ch);
            return $result;
        }
    }
?>

2.后端获取请求参数

前面Ajax发送代码(使用jQuery):
$.ajax({
    url: '',
    type: 'POST',
    contentType: 'application/json; charset=utf-8', // 很重要
    traditional: true,
    data: JSON.stringify({your json object}), // {"name":"zhangsan", "age": 28}
    success: function(res, status, xhr) {
        // your code ....
    }
});
服务端接收代码(java):
HttpServletRequest req = ...
try {
    BufferedReader reader = req.getReader();

    StringBuilder sb = new StringBuilder();
    char[] buff = new char[1024];
    int len = -1;

    while((len = reader.read(buff)) != -1) {
        sb.append(buff, 0, len);
    }
    reader.close();
    // example
    System.out.println( sb.toString() ); // {"name":"zhangsan", "age": 28}
} catch(IOException e) {
    // error
}
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值