GET一般是以Parameter传输。但是现在在IOS端需要把GET传输的数据以body传输。
这样做的原因:为了实现数据传输过程都以body方式加密传输。
问题:
1.GET传输的数据以body传输,在IOS上如何实现。
2.如果GET方式Parameter传输,这样会不会没有BODY安全?一般安全性特高的,也是GET方 式Parameter传输?
3.如果全部用POST方式。这样完全不符合REST API风格。
理論上GET和POST沒有本質區別,所以建議用POST來做。
另,如果一定要用GET,建議把要傳輸的資料放在同一個物件裡,例如你要傳輸的內容是:
http://example.com/api?paramA=valueA¶mB=ValueB¶mC=ValueC
則可以先建構要傳送的物件(舉例用JSON格式,其他格式也無所謂):
{"paramA":"valueA","paramB":"valueB","paramC":"valueC"}
然後對這個物件加密,例如得到密文:
uyUYbJhkIU*^GmklJL(Tu6RJHGHYRhgV$6U%&^%M
再做URL Encode,傳輸:
http://example.com/api?data=uyUYbJhkIU%2A%5EGmklJL%28Tu6RJHGHYRhgVU%25%26%5E%25M%3CHJFHGFjJHGjgj
你直接用post傳輸就行了。安全這塊你看下簽名驗證有關的資料,有其他方法保證。
把資料放到 body 裡面,必須用 POST 方式取,這是 HTTP 協定限制的。
既然是傳送 data,那就用 POST。
GET 傳遞的不是 data,是其它的附加參數,當 url 無法詳細描述一個 uri 資源是,用 parameter 輔助一下,例如分頁、排序、等…
理論上GET和POST沒有本質區別,所以建議用POST來做。
另,如果一定要用GET,建議把要傳輸的資料放在同一個物件裡,例如你要傳輸的內容是:
則可以先建構要傳送的物件(舉例用JSON格式,其他格式也無所謂):
然後對這個物件加密,例如得到密文:
再做URL Encode,傳輸:
你直接用post傳輸就行了。安全這塊你看下簽名驗證有關的資料,有其他方法保證。
把資料放到 body 裡面,必須用 POST 方式取,這是 HTTP 協定限制的。
既然是傳送 data,那就用 POST。
GET 傳遞的不是 data,是其它的附加參數,當 url 無法詳細描述一個 uri 資源是,用 parameter 輔助一下,例如分頁、排序、等…