2012-11-15 36 views
5

Tôi tìm thấy rất nhiều mẫu để yêu cầu một API REST, nhưng tất cả cùng nhau gây nhầm lẫn, có thể một số xin vui lòng giải thích cho tôi một cách để sử dụng các yêu cầu http.Android Rest Client

Yêu cầu của tôi là, tôi muốn lấy dữ liệu từ API REST bằng cách cung cấp tên người dùng, pwd và khóa.

Những gì tôi đã qua sử dụng là,

 HttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost("REST API url"); 
     post.setHeader("Content-type", "application/json"); 

     JSONObject obj = new JSONObject(); 
     obj.put("username", "un"); 
     obj.put("pwd", "password"); 
     obj.put("key","123456"); 

     post.setEntity(new StringEntity(obj.toString(), "UTF-8")); 
     HttpResponse response = client.execute(post); 

Nhưng câu trả lời luôn là null và những tác động tốt khi thử nghiệm với công cụ trình duyệt bằng cách đăng data.Is cùng một số điều sai với cách tiếp cận của tôi? xin vui lòng đề nghị tôi một cách chính xác. Cảm ơn bạn

Trả lời

2

tôi điều bạn nên thử loại này,

HttpContext localContext = new BasicHttpContext(); 
HttpClient client = new DefaultHttpClient(); 
HttpPost post = new HttpPost("REST API url"); 
post.setHeader("Content-type", "application/json"); 

JSONObject obj = new JSONObject(); 
obj.put("username", "un"); 
obj.put("pwd", "password"); 
obj.put("key","123456"); 

post.setEntity(new StringEntity(obj.toString(), "UTF-8")); 
HttpResponse response = client.execute(post,localContext); 

Hy vọng điều này sẽ giúp.

+0

Không, tôi đã thử vấn đề này, vẫn là vấn đề tương tự. Tôi không thể nhận dữ liệu phản hồi. Có ai có thể giúp tôi không. Tôi có nên sử dụng UrlConnection thay vì các lớp Http? – user470169

4

Bạn có thể quên thêm quyền internet vào tệp kê khai. Thêm dòng sau.

<uses-permission android:name="android.permission.INTERNET" /> 
6

(1) Google I/O video session for developing REST clients

(2) tìm kiếm trong blog của nhà phát triển Android

(3) https://github.com/darko1002001/android-rest-client

Vui lòng thử sau đó gửi câu hỏi của bạn, tôi có thể chia sẻ đoạn mã từ khách hàng nghỉ ngơi của tôi được phát triển dựa trên (1) & (2)

Không sử dụng Đám mây để Nhắn tin thiết bị, thay vào đó sử dụng phương pháp tiếp cận đám mây mới nhất với phát triển ứng dụng thuần túy.

Có thư viện mới có tên Volley, trông đẹp hơn AsyncTask. Nó sẽ hữu ích trong việc phát triển các máy khách RESTful.

0

Có khi nào máy chủ đang chờ yêu cầu GET cho hoạt động này không? Nếu vậy, bạn có thể muốn sử dụng HttpGet thay vì HttpPost.

Các vấn đề liên quan