簡體   English   中英

發布請求WCF庫項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM