2011-12-13 44 views
11

Tôi có thể gọi dịch vụ web từ dòng lệnh Linux bằng CURL. Bây giờ tôi đang dùng try để sử dụng dịch vụ web nhưng tôi luôn nhận được lỗi sau: 500 Lỗi máy chủ nội bộ.Gọi dịch vụ web bằng wget

Tôi đang sử dụng cú pháp sau:

wget http://<endPoint> --post-file=soapRequest.xml --header="Content-Type: application/soap+xml" --output-document=soapResponse.xml 

đâu soapRequest.xml chứa các yêu cầu XML (xác nhận bởi soapUI).

Các lỗi trở về từ wget là:

Connecting to <host:port>... connected. 
HTTP request sent, awaiting response... 500 Internal Server Error 
2011-12-12 23:18:33 ERROR 500: Internal Server Error. 

Trả lời

0

Bạn đang nộp Payload cùng với SOAP? Bạn đã thử sử dụng SOAPUI Client để kiểm tra xem có phản hồi thành công không?

+0

Có: nếu tôi gửi cùng một tải trọng bằng cách sử dụng SoapUI máy chủ cung cấp cho tôi câu trả lời đúng .. – matteogll

4

tôi phải sử dụng --header="Content-Type: text/xml"

15

Bạn không đề cập đến mà webserver bạn đang sử dụng, hoặc làm thế nào URL của bạn được định dạng, nhưng để gọi một hoạt động dịch vụ web viết bằng .NET trên IIS sử dụng cú pháp sau:

wget --post-file=soaprequest.xml --header="Content-Type: text/xml" --header="SOAPAction: \"soapaction\"" http://server/app/myservice.asmx -O response.xml

Giá trị "soapaction" có thể được tìm thấy trong WSDL hoặc trên trang thông tin ASP.NET tạo cho hoạt động tại myservice.asmx.

+0

Điều đó giúp tôi rất nhiều. Làm việc tốt với JBossWS. –

Các vấn đề liên quan