2012-05-22 13 views
6

Jak mogę dodać paramery nagłówka w systemie Android?Uzupełnienie androida dodać niestandardowy parametr nagłówka

Mam następujący kod:

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) {} 
+0

Restlet nie ma prostej metody rodzajowe jak AddHeader ("Klucz", "wartość"). Zamiast tego ma wiele obiektów i właściwości związanych z obiektami żądania i odpowiedzi, których używasz do określenia, czego chcesz. Który konkretny nagłówek lub nagłówki chcesz ustawić? Nawiasem mówiąc, jeśli posiadasz eBook Restart w akcji, dodatek E opisuje, w jaki sposób różne nagłówki są mapowane na Restart obiektów i właściwości. –

+0

Ale jak umieścić nagłówek, który nie jest wzorcem rastla? – ademar111190

Odpowiedz

4

chcesz dodać niestandardowe (tj niestandardowe) nagłówki? Jeśli tak, to spróbuj tego:

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"); 
+0

dzięki, ale gdzie ta zmienna "żądanie"? – ademar111190

+0

Niestety, żądanie pochodzi z ClientResource.getRequest(). Zaktualizowałem mój fragment kodu powyżej. –

+0

Hmm, przytrzymaj sekundę, otrzymując dziwny błąd podczas testowania tego. –

3

skorzystać z poniższego kodu

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(); 
} 
+0

OP zapytał, jak to zrobić, używając Restletu. –

+0

Potrzebuję przy użyciu ClientResource ... – ademar111190

+0

Przepraszamy za porwanie tego starszego pytania, ale czy istnieje sposób na dodanie niestandardowego nagłówka w pakiecie 1.1, w którym nie istnieje odwołanie do obiektu zasobów klienta? – aspiringCoder

Powiązane problemy