[英]Post request WCF Library Project
我正在嘗試在WCF服務上創建POST請求,以將服務器AllocateCreditToken添加到特定的MSISDN。
我遇到一個問題,當我啟動項目實例並使用要添加的值加載URL時,我在瀏覽器上收到一條消息,提示“方法不允許”
我不確定我的AllocateCreditToken()方法是否正確。
如果您需要查看代碼,請告訴我,因為該代碼很長。
謝謝
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "AllocateCreditToken?MSISDN={MSISDN}")]
Stream AllocateCreditToken(string MSISDN);
您應該檢查的幾件事
1)在WCF服務類上添加以下屬性。
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
2)您使用的消息正文樣式為裸露,這意味着WCF將不接受多個參數。如果希望傳遞多個參數,請將BodyStyle屬性設置為Wrapped。
包裝:請求和響應都包裝。
WrappedRequest:我們可以包裝請求,但不能包裝響應。
WrappedResponse:我們可以包裝響應,但不能包裝請求。
裸:請求和響應都沒有包裝。 這是默認成員。
3)使用POSTMAN工具發送請求以測試響應。
除了所有這些以外,這里還有一個簡短的示例,請注意,由於它是一種寧靜的服務,因此我將url本身中的單個值作為OData表示法的一部分發送。 我沒有明確提到消息正文樣式為Bare,因為它默認為Bare。
[WebInvoke(Method = "DELETE", UriTemplate = "Employee/{empId}", ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
void DeleteEmployee(string empId);
並在ajax電話
$.ajax({
type: "DELETE",
url: "http://localhost:8080/MyService/EmployeeService/Employee/2",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data);
},
error: function (msg) {
alert(msg);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.