2011-08-17 11 views
5

Obecnie pracuję nad jedną aplikacją .. w tej aplikacji muszę użyć get i opublikować obie metody .. Metoda get działa poprawnie, ale w metodzie post nagle otrzymuję odpowiedź jakJak ustawić nagłówek za pomocą metody http post

"invalid method.post required".. 

mój kod to:

 String list_url = "************************"; 
    try { 

     String appand = TimeStampForAuth.TimeStameMethod(main.this); 
     String auth = android.util.Base64.encodeToString(("iphone" + ":" + 
      "2a5a262d5a") 
     .getBytes("UTF-8"), android.util.Base64.NO_WRAP); 

     DefaultHttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost(list_url+appand); 

     Log.d("URL_LIST", list_url+appand); 

     List nvps = new ArrayList(); 
     nvps.add(new BasicNameValuePair("login",Login)); 
     nvps.add(new BasicNameValuePair("password",password)); 
     nvps.add(new BasicNameValuePair("title",title)); 
     nvps.add(new BasicNameValuePair("category_id",cat_id)); 




     UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps,HTTP.UTF_8); 
     post.addHeader("Authorization", "Basic " + auth); 
     post.setEntity(p_entity); 
     HttpResponse response = client.execute(post); 
     HttpEntity responseEntity = response.getEntity(); 
     String s = EntityUtils.toString(responseEntity); 
     Log.d("List response", s); 

    } 
    catch(Exception e){ 
     System.out.println(e.toString()); 
    } 

że brakuje mi somethinf czy co, że dont know..is wszystkie te rzeczy są ważne dla metody postu ....

proszę mi pomóc jak najszybciej, ...

Dziękując .........

+0

stronie serwera może być problem? już próbowałeś uruchomić żądanie z RESTClient-Addon? – Tima

+0

nie ma problemu z serveride..serverside request wyślij jako żądanie pobrania przy użyciu tej metody ..jest to możliwe..proszę mi pomóc ..i nie wiem co poszło nie tak z tym kodem .. – Kutbi

+0

ar sure, twój kod z postem Żądanie i nie dostaniesz żądania zostanie wykonane? spróbuj debugować z przerwami – Tima

Odpowiedz

1

Spróbuj użyć setHeader() zamiast addHeader()

+0

próbowałem, ale żadnych zmian w ogóle .. nie ma znaczenia, aby zmienić setHeader() zamiast addHeader() .. ??? daje prawidłową odpowiedź przed tygodniem i również potwierdzam od strony klienta, że ​​wszystkie Rzecz jest właściwa ... – Kutbi

1

Można spróbować HttpClient 4.1 dla Androida: http://code.google.com/p/httpclientandroidlib/ (W HttpClient wersji 4.0, z której korzysta Android, są błędy.) Możesz także trochę debugować przy pomocy httpClient.log.enableDebug (true);

Jeśli nie chcesz korzystać z biblioteki zewnętrznej, rozpocznę debugowanie ruchu sieciowego. Za pomocą oprogramowania o nazwie Wireshark można łatwo przeglądać i sprawdzać wszystkie żądania/odpowiedzi HTTP.

W celu uzyskania zezwolenia Osobiście używać:

httpClient.getCredentialsProvider().setCredentials(
    new AuthScope(hostname, port), 
    new UsernamePasswordCredentials(user, pass)); 
-1

użycie zamiast tego:

HttpURLConnection connection = (HttpsURLConnection) serviceURL.openConnection(); 
    connection.setRequestMethod("POST"); 
Powiązane problemy