1. 程式人生 > >使用Google瀏覽器開發者工具學習HTTP請求記錄

使用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
}