如何在rest客户端传递url参数

时间:2015-02-02 09:54:55

标签: c# wcf-rest rest-client

我有两个方法,比如接口

   [OperationContract]
    [WebInvoke(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
        UriTemplate = "/InsertDetails/{FirstName}/{CustomerName}/{LastName}/{Address}",
         Method = "PUT",
        BodyStyle = WebMessageBodyStyle.Bare)]
    void InsertDetails(string FirstName, string CustomerName, string LastName, string Address);

    [OperationContract]
    [WebInvoke(RequestFormat = WebMessageFormat.Json,
         ResponseFormat = WebMessageFormat.Json,
          BodyStyle = WebMessageBodyStyle.Bare,
          UriTemplate = "/Insert/",Method="PUT")]
    void InsertDetailsData(CustomerClass custmer);

我希望在restclient插件中测试这些方法... 如何在InsertDetails方法中传递参数。

2 个答案:

答案 0 :(得分:0)

如果您设置了json端点,则可以使用浏览器测试方法。 我假设你有一个basicHttpBinding并想要另一个(rest / json)端点:

服务方面: 在services.service部分:

<endpoint address="" binding="basicHttpBinding" cotract="YourLibrary.YourService"/>   
<endpoint address="json" binding="webHttpBinding"  contract="YourLibrary.YourService" behaviorConfiguration="restfulBehavior" />

在行为部分:

<endpointBehaviors>
    <behavior name="restfulBehavior">
        <webHttp defaultOutgoingResponseFormat="Json" />
    </behavior>
</endpointBehaviors>

您现在可以使用浏览器访问您的服务:只需附加到您的基地址/ json / InsertDetails / param1 / param2 / param3 / param4

您可以通过设置客户端来从您的应用访问该服务:

 <client>
      <endpoint address="your base address/json"
        binding="webHttpBinding"  contract="YourLibrary.YourService" name="webHttpBinding_IMilewatchService" />
    </client>

您也可以手动调用该服务(使用WebClient类打开一个URL)

答案 1 :(得分:0)

如果您的网址是http://somedomain.com,那么您会这样做:

http://somedomain.com/InsertDetails/Homer/The%20Simpsons/Simpson/123%20Street%20St