我不确定如何发送HTTP Auth标头。
我有以下HttpClient来获取请求,但不确定如何发送请求?
public class RestClient extends AsyncTask<String, Void, JSONObject> { private String convertStreamToString(InputStream is) { /* * To convert the InputStream to String we use the * BufferedReader.readLine() method. We iterate until the * BufferedReader return null which means there's no more data to * read. Each line will appended to a StringBuilder and returned as * String. */ BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } /* * This is a test function which will connects to a given rest service * and prints it's response to Android Log with labels "Praeda". */ public JSONObject connect(String url) { HttpClient httpclient = new DefaultHttpClient(); // Prepare a request object HttpGet httpget = new HttpGet(url); // Execute the request HttpResponse response; try { response = httpclient.execute(httpget); // Examine the response status Log.i("Praeda", response.getStatusLine().toString()); // Get hold of the response entity HttpEntity entity = response.getEntity(); if (entity != null) { // A Simple JSON Response Read InputStream instream = entity.getContent(); String result = convertStreamToString(instream); // A Simple JSONObject Creation JSONObject json = new JSONObject(result); // Closing the input stream will trigger connection release instream.close(); return json; } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } return null; } @Override protected JSONObject doInBackground(String... urls) { return connect(urls[0]); } @Override protected void onPostExecute(JSONObject json) { } }
HttpClient 文档及其示例代码中对此进行了介绍。