Mengembalikan data dari layanan web lainnya tanpa parameter di uri

Mengalami masalah saat mengembalikan String dari layanan web lainnya:

[WebInvoke(Method = "PUT", UriTemplate = "/Filters", 
BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
string CreateFilter(Filter InputFilter);

Seperti yang Anda lihat, URL tidak memiliki parameter apa pun, semua data diteruskan melalui aliran ke URL. String yang dikembalikan didasarkan pada data yang dikirim ke URL.

Ketika saya menggunakan aplikasi pengujian .net, responsnya benar (berdasarkan masukan).

Ketika saya menggunakan servlet Java, layanan mengembalikan kesalahan 400 ketika GetInputStream() untuk HttpURLRequest dipanggil.

Tampaknya servlet Java melakukan panggilan kedua ke URL dan mengharapkan respons (yang tidak ada karena didasarkan pada input). Saya mengujinya dengan mengubah pengembalian ke konstanta (jadi tidak berdasarkan input). Ketika saya melakukan ini, metode GetInputStream() saya berfungsi.

Kode servlet:

OutputStream out = connection.getOutputStream();
out.write(jsonValue.getBytes());
out.close();

String response = "";


BufferedReader readResponse = 
new BufferedReader(new InputStreamReader(connection.getInputStream()));

response = readResponse.readLine();


return response;

Catatan: Metode lain menggunakan kode yang sama untuk URL dengan parameter di dalamnya, dan mengembalikan data yang benar (menambahkan bukti bahwa servlet membuat panggilan kedua ke URL dalam metode masalah saya.) Juga out.close() BUKAN merupakan masalah.


person AssHat44    schedule 08.11.2011    source sumber


Jawaban (1)


Terselesaikan. Ini akhirnya menjadi masalah pada Json yang dikirim oleh Servlet. Saat layanan web mencoba menggunakan satu bagian data tertentu, layanan tersebut akan error dan tidak menghasilkan string pengembalian yang diperlukan.

[{"Key":"1","Value":"one"},{"Key":"2","Value":"two"},{"Key":"3","Value":"three"}]

Representasi C# ^^

{"3":"three","2":"two","1":"one"}

Representasi Java ^^

Kamus vs HashMap >‹

person AssHat44    schedule 08.11.2011