2014-11-17 13 views
7

Geri kalanını kullanarak bir dinlenme çağrısı çağırmaya çalışıyorum. Benim API'm, içerik türü olarak "application/json" kabul ediyor ve aramayı ayarlamam gerekiyor. İçerik türünü aşağıda belirtildiği gibi ayarlıyorum.ayar içeriği geri kalanı güvence altında

Seçenek 1

Response resp1 = given().log().all().header("Content-Type","application/json") 
    .body(inputPayLoad).when().post(addUserUrl); 
System.out.println("Status code - " +resp1.getStatusCode()); 

Seçenek 2

Response resp1 = given().log().all().contentType("application/json") 
    .body(inputPayLoad).when().post(addUserUrl); 

Elde yanıt "415" olan (gösterir "desteklenmeyen ortam tipi").

Düz java kodunu kullanarak aynı API'yi çalıştırmayı denedim ve çalışıyor. Bazı gizemli nedenlerden ötürü, RA ile çalışamıyorum.

HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(addUserUrl); 
    StringEntity input = new StringEntity(inputPayLoad); 
    input.setContentType("application/json"); 
    post.setEntity(input); 
    HttpResponse response = client.execute(post); 
    System.out.println(response.getEntity().getContent()); 
    /* 
    BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
    String line = ""; 
    while ((line = rd.readLine()) != null) { 
     System.out.println("Output -- " +line); 
    } 
+0

Son örneklerden başlıklar istemek için istek başlıklarını ilk iki örneğinizden karşılaştırmak mümkün olabilir mi? – spg

+0

Seçenek 1: İstek yöntemi: \t POST İstek yolu: \t http: //10.75.43.46: 7001/supplierapp savaş/pim/ADDUSER istek parametreleri: \t Sorgu parametreleri: \t Formu parametreleri: \t Yol parametreleri: \t Başlıkları: \t \t Content-Type = application/json Çerezler: \t \t Seçenek 2: ayrıntılı yöntemi: \t SONRASI ayrıntılı yolu: \t http://10.75.43.46:7001/supplierapp-war/pim/addUser ayrıntılı parametreleri: \t Sorgu parametreleri: \t Formu parametreleri: \t Yol parametreleri: \t Başlıkları: \t \t Content-Type = application/json Çerezler: HttpClient tarafından gönderilen \t \t TechRookie

+0

İstek: İçerik Türü: İçerik- Tür: application/json İçerik Uzunluğu: 203 İçerik: java.io.Byte[email protected] content Kodlama: null Not: httpClient'ten başlık bilgilerini almak için aşağıdaki snippet'i kullandım. System.out.println ("İçerik Türü:" + input.getContentType()); System.out.println ("İçerik Uzunluğu:" + input.getContentLength()); System.out.println ("İçerik:" + input.getContent()); System.out.println ("content Kodlama:" + input.getContentEncoding()); – TechRookie

cevap

1

siz de bu başlık ekleme ve isteği göndererek deneyin edebilirsiniz Birinci seçenek için deneyin verilen(). ContentType (ContentType.JSON) .body (inputPayLoad.toString)

0

ver? gerisi güvenen 2.7 sürümü ile çalışırken

.header("Accept","application/json")

7

ben benzer bir sorunu karşılaştı. Hem contentType'ı ayarlamayı hem de uygulamayı/json'u kabul etmeyi denedim ama işe yaramadı. Sonrasında aşağıdaki gibi taşıma beslemesi ve yeni satır karakterleri ekledim.

RestAssured.given().contentType("application/json\r\n") 

API hangi sunucu medya türü ve istek geri kalan içeriğinden ve dolayısıyla hata 415 atma birbirinden ayırmak mümkün değildir nedeniyle Content-Type başlığından sonra yeni satır karakterlerini eklemek için eksik gibi görünüyor - "Desteklenmeyen medya türü".

RequestSpecification.contentType(String value)

Ben de benim için işe yaramadı:

+0

Teşekkürler. Bu bizim için çalıştı. – Buddha

0

önceki mesajlar belirtildiği gibi bir yöntem yoktur. Ancak en yeni sürüme yükselttikten sonra (şu an 2.9.0) çalışır. Bu yüzden lütfen yükseltin :)

0

İşte CONTENT_TYPE kullanarak JSON.Hope olarak tamamlandı POST exmaple size yardımcı olacaktır.

RequestSpecification request=new RequestSpecBuilder().build(); 
ResponseSpecification response=new ResponseSpecBuilder().build(); 
@Test 
public void test(){ 
    User user=new User(); 
    given() 
    .spec(request) 
    .contentType(ContentType.JSON) 
    .body(user) 
    .post(API_ENDPOINT) 
    .then() 
    .statusCode(200).log().all(); 
} 
İlgili konular