IIS を介してローカルでホストされる WCF Web サービスを作成しました。サービスが正常に動作していることを確認するために WCF テスト クライアントを使用しましたが、手動の REST 呼び出しでテストしたいと考えています。RESTClient 3.1を使用して REST 呼び出しを送信しています。メソッドから結果を取得することはできますが、JSON をパラメーターとして送信しようとすると、常に null パラメーターになります。私は何を間違っていますか?私のリクエストから返される本文は「FAIL :(」です。よろしくお願いします。これまで、この問題に 1 日以上費やしてきました。
サービス契約:
[OperationContract]
[WebInvoke(
Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
public string Route2(Position start)
{
if (start == null)
{
return "FAIL :(";
}
else
{
return "SUCCESS :)";
}
}
** web.config: **
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd"/>
</handlers>
<defaultDocument>
<files>
<add value="help" />
</files>
</defaultDocument>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service name="Primordial.GroundGuidance.Service.GroundGuidanceService">
<endpoint address="soap" binding="basicHttpBinding" contract="Primordial.GroundGuidance.Service.GroundGuidanceService" />
<endpoint address="" binding="webHttpBinding" bindingConfiguration=""
name="web" contract="Primordial.GroundGuidance.Service.GroundGuidanceService"
kind="webHttpEndpoint" endpointConfiguration="webEndpointWithHelp" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="webEndpointWithHelp" helpEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
私は RESTClient を使用しているため、呼び出しは単なる文字列/ファイルではありませんが、ヘッダーと値のペアの場合は次のようになります: Accept: application/json contentType: application/json
ボディ タイプは「application/json; charset=UTF-8」ボディに設定されます。
{
"elevation": 0,
"latitude": 35.31,
"longitude": -116.41
}