2015-07-05 2 views
-1

сервера является не принимать строковых параметры при создании запроса объекта JSON (по методе поста) использования залпа, а также в таможенной запросе залпа он обязан пропускать строка Хэш-карта в getParams() метод У меня есть строка, а также длинные значения, которые нужно проехать там, также проверено Uri класс, но в appendQueryParameter() также есть жало. я использовал ниже ссылки Link 1 Link 2Link 3способ передать Длинный параметр в URL запросе с помощью залпа

Volley class 

общественного класса CustomRequest расширяет запрос {

private Listener<JSONObject> listener; 
private Map<String, String> params; 

public CustomRequest(String url, Map<String, String> params, 
        Listener<JSONObject> reponseListener, ErrorListener errorListener) { 
    super(Method.GET, url, errorListener); 
    this.listener = reponseListener; 
    this.params = params; 
} 

public CustomRequest(int method, String url, Map<String, String> params, 
        Listener<JSONObject> reponseListener, ErrorListener errorListener) { 
    super(method, url, errorListener); 
    this.listener = reponseListener; 
    this.params = params; 
} 

protected Map<String, String> getParams() 
     throws com.android.volley.AuthFailureError { 
    return params; 
} 


@Override 
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { 
    try { 
     String jsonString = new String(response.data, 
       HttpHeaderParser.parseCharset(response.headers)); 
     return Response.success(new JSONObject(jsonString), 
       HttpHeaderParser.parseCacheHeaders(response)); 
     /* return Response.success(
       gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(response));*/ 
    } catch (UnsupportedEncodingException e) { 
     return Response.error(new ParseError(e)); 
    } catch (JSONException je) { 
     return Response.error(new ParseError(je)); 
    } 
} 

@Override 
public Map<String, String> getHeaders() throws AuthFailureError { 
    Map<String, String> headers = new HashMap<>(); 
    String loginEncoded = new String(Base64.encode(("uictester:?f!T!ziX}.,(").getBytes(), Base64.DEFAULT)); 
    headers.put("Authorization", "Basic " + loginEncoded); 
    return headers; 
} 

@Override 
protected void deliverResponse(JSONObject response) { 
    // TODO Auto-generated method stub 
    listener.onResponse(response); 
} 

}

ответ

1

Сначала необходимо преобразовать длинный параметр в строку, используя String.valueOf (длинный value), а затем поместите этот параметр в hashmap с его ключом. as:

params.put ("ключ", String.valueOf (длинное значение));

+0

Да! Это то, что я делаю прямо сейчас, но сервер не принимает строковый параметр, подобный этому. –