android restlet添加非标头头param

时间:2012-05-22 21:59:46

标签: java android parameters header restlet

如何在restlet android中添加Header params?

我有以下代码:

ClientResource clientResource = null;
try {
    clientResource = new ClientResource(jsonRestHelper.getUrl());
    for (Parameter parameter : jsonRestHelper.getParameters()) {
        //here works perfectly, jsonRestHelper is a helper class
        clientResource.addQueryParameter(parameter);
    }
    //here I wanna add headers param example
    //addHeader("Key","Value");
} catch (Exception e) {}

2 个答案:

答案 0 :(得分:4)

是否要添加自定义(即非标准)标头?如果是这样,试试这个:

import java.util.concurrent.ConcurrentMap;
import org.restlet.data.Form;
import org.restlet.engine.header.Header;
import org.restlet.engine.header.HeaderConstants;
import org.restlet.resource.ClientResource;
import org.restlet.util.Series;


...

clientResource = new ClientResource("http://someurl.com");
ConcurrentMap<String, Object> attrs = clientResource.getRequest().getAttributes();
Series<Header> headers = (Series<Header>) attrs.get(HeaderConstants.ATTRIBUTE_HEADERS);
if (headers == null) {
    headers = new Series<Header>(Header.class);
    Series<Header> prev = (Series<Header>) 
        attrs.putIfAbsent(HeaderConstants.ATTRIBUTE_HEADERS, headers);
    if (prev != null) { headers = prev; }
}
headers.add("myHeaderName", "myHeaderValue"); 

答案 1 :(得分:3)

使用以下代码

HttpClient client = new DefaultHttpClient();  
String getURL = "rest url";
HttpGet get = new HttpGet(getURL);
get.setParams(HttpParams parmams)
get.setHeader("Key","valye"); // Request Header
    try {
        HttpResponse responseGet = client.execute(get);
   } 
   catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
  } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
}