3
매개 변수가 두 개 이상있는 WCF 서비스에 게시하려면 명령 줄 도구 curl
을 어떻게 사용합니까? WCF 서비스에 curl을 사용하여 매개 변수를 사용하여 POST하는 방법
var service = new WebServiceHost(typeof(MyService),
new Uri("http://localhost:3000/MyService");
service.AddServiceEndpoint(typeof(IMyService), new WebHttpBinding(), "");
service.Open();
같은 다음
[ServiceContract]
public interface IMyService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
void PostMethod(string varString, bool varBool);
}
그리고 설치 서버와 같은 서비스를?
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; }
}
이 응답하지 않습니다
당신이 사용할 수 곱슬 가장 가까운 옵션은
그것은 꽤 아니라 당신이 다음이 사용할 수있는 JSON
입니다 varString = foo -d varBool = true http : // localhost : 3000/MyService/PostMethod'. 이 작업을 수행하는 대신 'curl -s -d doesnot = matter http : // localhost : 3000/MyService/PostMethod? varString = foo & varBool = true'라고 입력하면 작동합니다. 데이터 매개 변수를 제공하거나 URL 대신 데이터에 사용할 필요가없는 것이 좋습니다. – Jason흠 나는 이것을 시험해 보았고 여기에서 효과가 있었다. (나는 파워 쉘에서 컬을 돌렸다.) 왜 차이가 있는지 보겠습니다. –
기본 끝점없이 .net 4.0을 사용하고 있습니다. 나는 그것이 그것이 당신을 위해 그리고 나를 위해 일하지 않을 것이라고 생각합니다. 당신은 내용 유형에 무언가를 했습니까? – Jason