2014-10-07 18 views
6

Sunucuya bir XML gövdesi göndermek için Volley'de bir POST araması yazmayı deniyorum. Content-Type başlığını doğru ayarlayamıyorum.Volley Content-Type üstbilgi güncellenmiyor

temel StringRequest şuna benzer: İstediğim Content-Type başlığını tedarik getHeaders() geçersiz

StringRequest folderRequest = 
     new StringRequest(Method.POST, submitInterviewUrl, myListener, myErrorListener) 
    { 
     @Override 
     public byte[] getBody() throws AuthFailureError 
     { 
      String body = "some text"; 
      try 
      { 
       return body.getBytes(getParamsEncoding()); 
      } 
      catch (UnsupportedEncodingException uee) 
      { 
       throw new RuntimeException("Encoding not supported: " 
         + getParamsEncoding(), uee); 
      } 
     } 

     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError 
     { 
      Map<String, String> headers = new HashMap<String, String>(); 
      headers.put("Content-Type", "application/xml"); 
      return headers; 
     } 
    }; 

- application/xml. istek gönderildiğinde, Volley otomatik ikinci Content-Type başlık ekledi


yüzden başlıklarıyla: buna benzer önerileri sorulara dayanmaktadır

Şunlara benzer:

Content-Type: application/xml 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 

Doğru üstbilgiyi nasıl ayarlayabilirim? Ya da yanlış üstbilgiyi kaldırın?

Request tabanı aracılığıyla izleme yapmayı denedim, ancak bu ek üstbilginin nereden geldiğini bulamadık.

cevap

27

Content-Type başlığı, Volley tarafından diğer başlıklarla aynı şekilde ele alınmaz. Özellikle, içerik türünü değiştirmek için getHeaders()'u geçersiz kılmak her zaman işe yaramaz.

Bunu yapmanın doğru yolu getBodyContentType() geçersiz kılmak için geçerli:

public String getBodyContentType() 
    { 
     return "application/xml"; 
    } 

Ben JsonRequest sınıf için kod bakarak buldum.

Delyan de bu ilgili soruya verdiği cevap onu bahseder: Bahsettiğiniz olarak çünkü

+2

Sen getHeaders() her zaman işe yaramaz –

+1

beni Kayıtlı, günü kurtardı, GetHeaders'ın "getBodyContentType" sağlanan değerini geçersiz kılacağına güveniyordum. –