2015-03-26 2 views
0

я пост с заголовком авторизации кода, какAndroid - Как отправить с заголовком авторизации

public static String doPost(String url, List<NameValuePair> params) { 
    /* 建立HTTPPost对象 */ 
    HttpPost httpRequest = new HttpPost(url); 
    httpRequest.setHeader("Authorization", "Bearer " + token); 
    httpRequest.setHeader("Content-type", "application/json"); 

    String strResult = "doPostError"; 
    try { 
     /* 添加请求参数到请求对象 */ 
     httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 

     HttpClient httpClient = getHttpClient(); 
     /* 发送请求并等待响应 */ 
     HttpResponse httpResponse = httpClient.execute(httpRequest); 
     /* 若状态码为200 ok */ 
     if (httpResponse.getStatusLine().getStatusCode() == 200) { 

      InputStream is = httpResponse.getEntity().getContent();//获取内容 
      final String result = streamToStr(is); 
      /* 读返回数据 */ 
      strResult = EntityUtils.toString(httpResponse.getEntity()); 
     } else { 
      strResult = "Error Response: " 
        + httpResponse.getStatusLine().toString(); 
     } 
    } catch (ClientProtocolException e) { 
     strResult = e.getMessage().toString(); 
     e.printStackTrace(); 
    } catch (IOException e) { 
     strResult = e.getMessage().toString(); 
     e.printStackTrace(); 
    } catch (Exception e) { 
     strResult = e.getMessage().toString(); 
     e.printStackTrace(); 
    } 
    Log.v("Cloud Service", strResult); 
    return strResult; 
} 

стороне сервера является веб-api.I разместить запрос

final String api = "api/RealTime/GetDtu"; 
       List<NameValuePair> list=new ArrayList<NameValuePair>(); 
       list.add(new BasicNameValuePair("PhoneId", station.getPhoneId())); 

Но сервер делает не получил никаких json parameters.Web api имеет только один параметр PhoneId.Why я вызываю web api, но параметр null?

ответ

0

Объект, который вы задали в запросе, передается на сервер в качестве параметров POST. Единственным параметром, который вы устанавливаете, является phoneId. Так зачем тебе больше? Если вы хотите больше, вам нужно их установить.

+0

yep, я устанавливаю параметры сообщения, такие как doPost (host + api, list); – Whistler

+0

Не в коде, который вы нам дали, вы этого не сделали. Вы устанавливаете только один параметр, который, как вы сказали, у вас есть. Это похоже на то, что он работает, как ожидалось для меня. –

+0

Я отлаживаю свой серверный веб-сайт api «api/RealTime/GetDtu», авторизированный веб-api, но параметр null – Whistler

Смежные вопросы