2016-04-27 95 views

回答

0

需要使用StringRequest作为提到的djodjo。 也getBody方法需要被覆盖 - 从这里Android Volley POST string in body

@Override 
       public byte[] getBody() throws AuthFailureError { 
        String httpPostBody="your body as string"; 
        // usually you'd have a field with some values you'd want to escape, you need to do it yourself if overriding getBody. here's how you do it 
        try { 
         httpPostBody=httpPostBody+"&randomFieldFilledWithAwkwardCharacters="+ URLEncoder.encode("{{%stuffToBe Escaped/","UTF-8"); 
        } catch (UnsupportedEncodingException exception) { 
         Log.e("ERROR", "exception", exception); 
         // return null and don't pass any POST string if you encounter encoding error 
         return null; 
        } 
        return httpPostBody.getBytes(); 
       } 
+0

你不需要那样做。排球可以处理这些。请检查我更新的答案。 – djodjo

1

例如:

final TextView mTextView = (TextView) findViewById(R.id.text); 
... 

// Instantiate the RequestQueue. 
RequestQueue queue = Volley.newRequestQueue(this); 
String url ="http://www.google.com"; 

// Request a string response from the provided URL. 
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     // Display the first 500 characters of the response string. 
     mTextView.setText("Response is: "+ response.substring(0,500)); 
    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     mTextView.setText("That didn't work!"); 
    } 
}); 
// Add the request to the RequestQueue. 
queue.add(stringRequest); 

检查the source and more info here

**更新:**如果您需要添加PARAMS你可以简单地覆盖getParams()

例子:

@Override 
protected Map<String, String> getParams() throws AuthFailureError { 
     Map<String, String> params = new HashMap<String, String>(); 
     params.put("param1", "val1"); 
     params.put("randomFieldFilledWithAwkwardCharacters","{{%stuffToBe Escaped/"); 
     return params; 
    } 

你不需要覆盖getBody你的精灵不会编码特殊的字符,因为沃利正在为你做这件事。

+0

字符串确实要求采取。你还需要重写public byte [] getBody() – BoazGarty

+0

你不需要。你没有指定你想要的东西。检查更新。 – djodjo