2017-05-18 24 views
0

WCFサービスでPOSTリクエストを作成して、サーバーAllocateCreditTokenを特定のMSISDNに追加しようとしています。投稿のリクエストWCF Library Project

私はわからない

「メソッド許可されていません」と言って、私はプロジェクトのインスタンスを起動し、私は追加したい値にURLをロードするとき、私はブラウザ上でメッセージを取得するという問題が生じています私のAllocateCreditToken()メソッドが正しいかどうか。

コードを見る必要がある場合は、そのメソッドの長いコードのように教えてください。

おかげ

[OperationContract] 
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "AllocateCreditToken?MSISDN={MSISDN}")] 
Stream AllocateCreditToken(string MSISDN); 
+0

ご契約・インタフェースのためのコードを含めます。 – ColinM

+0

@ColinM自分のコードを確認してください –

+0

WebブラウザはGETリクエストを送信します。これは、受信したエラーを説明するもので、メソッドがPOSTのみであることを明示しています。 POSTリクエストを送信するには、Postmanなどのツールをダウンロードする必要があります。 https://www.getpostman.com/ – ColinM

答えて

1

あなたは属性以下のWCFサービスクラスで

1)を確認する必要があり、物事のカップルが追加されます。

[AspNetCompatibilityRequirements(RequirementsMode = 
AspNetCompatibilityRequirementsMode.Allowed)] 

2)あなたは、WCFは、複数のparameter.Ifを受け入れる複数のパラメータを渡したい、ラップにbodyStyle属性プロパティを設定しないことを意味しているとして、裸のメッセージのボディスタイルを使用しています。

ラッピング:両方のリクエストと応答がラップされます。

WrappedRequest:リクエストをラップすることはできますが、レスポンスをラップすることはできません。

WrappedResponse:レスポンスをラップすることはできますが、リクエストをラップすることはできません。

Bare:要求と応答は両方ともラップされません。これがデフォルトメンバーです。

3)POSTMANツールを使用して応答をテストする要求を送信します。

これ以外の短い例があります。私はOData表記の一部としてURL自体に単一の値を送信しています。 私はメッセージ本体のスタイルを既定のように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); 
       } 
      }); 
関連する問題