2012-02-20 20 views
11

Apache của tôi đang cố gắng thiết lập một số tham số Http trong đối tượng HttpPost.Thêm thông số vào HttpPost trên httpclient http: //

HttpPost post=new HttpPost(url); 
HttpParams params=new BasicHttpParams(); 
params.setParameter("param", "value"); 
post.setParams(params); 
HttpResponse response = client.execute(post); 

Có vẻ như thông số chưa được đặt. Bạn có bất kỳ ý tưởng tại sao điều này đang xảy ra?

Cảm ơn bạn

+11

'HttpĐược get'! nó có phải là POST hay GET? – artbristol

+0

Bạn nói ** 'HttpGet' ** trong phần mô tả và tiêu đề nhưng sau đó mã của bạn nói **' HttpPost' **. Tôi chỉ chỉnh sửa nó là đúng – Kayvar

Trả lời

7
HttpPost httpPost = new HttpPost(url); 
List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
nvps.add(new BasicNameValuePair("param", "value")); 
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 
httpClient.execute(httpPost); 
+4

câu hỏi này được yêu cầu cho http nhận được yêu cầu. bạn không thể setEntity cho http nhận được yêu cầu –

+0

Nên sử dụng LinkedList thay vì ArrayList – Benedictus

+0

@Benedictus, tại sao? – Dacav

26

Đối với những người hy vọng sẽ tìm ra câu trả lời bằng HttpGet, đây là một (từ https://stackoverflow.com/a/4660576/330867):

StringBuilder requestUrl = new StringBuilder("your_url"); 

String querystring = URLEncodedUtils.format(params, "utf-8"); 
requestUrl.append("?"); 
requestUrl.append(querystring); 

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet get = new HttpGet(requestUrl.toString()); 

LƯU Ý: Đây không mất trong việc xem xét các trạng thái của your_url: nếu đã có một số thông số, nếu đã có một "?", v.v ... Tôi giả sử bạn biết cách mã/tìm kiếm và sẽ thích ứng với trường hợp của bạn.

+1

Mặc địnhHttpClient không được chấp nhận. – Dacav