3
如何使用命令行工具curl
發佈到具有多個參數的WCF服務?如何使用捲曲到WCF服務的參數進行POST
我有一個像下面
[ServiceContract]
public interface IMyService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
void PostMethod(string varString, bool varBool);
}
我設置服務器這樣
var service = new WebServiceHost(typeof(MyService),
new Uri("http://localhost:3000/MyService");
service.AddServiceEndpoint(typeof(IMyService), new WebHttpBinding(), "");
service.Open();
我怎麼叫通過捲曲該方法的服務?
curl -d varString=foo -d varBool=true http://localhost:3000/MyService/PostMethod
錯誤在哪裏?該方法的BodyStyle是否錯誤?我應該將參數包裝在如下所示的[DataContract]類中嗎?
[DataContract]
public class PostMethodResult
{
[DataMember]
public string varString { get; set; }
[DataMember]
public bool varBool { get; set; }
}
這不迴應'捲曲-s -d varString = foo -d varBool = true http:// localhost:3000/MyService/PostMethod'。雖然它確實有效,但如果我這樣做,而不是'curl -s -d doesnot =重要http:// localhost:3000/MyService/PostMethod?varString = foo&varBool = true'。如果不需要提供數據參數或將其用於數據而不是url,那就太好了。 – Jason 2012-04-18 18:48:02
嗯,我試過這個,它在這裏工作(我從PowerShell運行卷曲)。讓我看看爲什麼有差異。 – 2012-04-18 20:42:31
我正在使用沒有默認端點的.net 4.0。雖然我認爲這不會導致它爲你工作而不是爲我工作。你對內容類型做了些什麼? – Jason 2012-04-18 21:36:42