2015-10-23 112 views
0

我有簡單的問題調用POST和哪種方法調用GET。Android Volley - 使身體和網址參數POST - 同時getParams和getBody

這是我的簡單的類:

public class CustomStringRequest extends Request<CustomNetworkResponse> { 

private final Map<String, String> headers; 
private final Map<String, String> params; 
private final String body; 
private final Response.Listener<CustomNetworkResponse> listener; 


public CustomStringRequest(int method, 
          String url, 
          Map<String, String> headers, 
          Map<String, String> params, 
          String body, 
          Response.Listener<CustomNetworkResponse> listener, 
          Response.ErrorListener errorListener) { 

    super(method, url, errorListener); 
    this.headers = headers; 
    this.params = params; 
    this.body = body; 
    this.listener = listener; 
} 



@Override 
public Map<String, String> getHeaders() throws AuthFailureError { 
    return headers != null ? headers : super.getHeaders(); 
} 

@Override 
public Map<String, String> getParams() { 
    return params; 
} 

@Override 
public byte[] getBody() throws AuthFailureError { 
    return body != null ? body.getBytes() : null; 
} 

如何,我可以在同一時間使用getParams()方法和getBody()?有沒有可能,因爲當我檢查超級實現時,我認爲這是不可能的。

我也註釋了方法getBody()來看看那是真的。

這是否意味着我不能發送身體和網址參數POST? URL參數是否意味着用於GET請求?這是標準嗎?

+0

我覺得它們是一樣的,因爲getParams在默認getBody中調用了 – BNK

+0

@BNK,好像是。這對我來說很奇怪,沒有創建UrlParametrs的方法(以及它的廢棄......但我仍然認爲它不能用作UrlParams)。或者我錯過了一些東西,有一種方法呢? – 5er

+0

你的意思是GET請求的url中的參數? – BNK

回答

0

那麼我不知道你的意圖是什麼!您可以隨時在url中添加url參數(如果參數很簡單)。然後您可以使用getParams()getBody()來傳遞更復雜的參數。

我認爲這兩者之間的區別在於它們通過網絡傳輸時的參數編碼(儘管我對此並不是100%確定),但是。 getBody()更安全。

相關問題