jsonを使用してWCFサービスを消費するインターネット上のさまざまな例を見てきましたが、iOSを使用してコンシューマを消費したり、 iOSを使ったwcfサービスへの簡単なjson呼び出し。リクエスト/レスポンス用のJsonを使用したWCFサービスメソッドの使用
私は、WCFでのサービス・インターフェースがあります。また、私は、これらの属性を持っている私のクラスの実装に
[ServiceContract(Namespace = "")]
[DataContractFormat(Style = OperationFormatStyle.Document)]
public interface IService
{
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "referenceData")]
string GetReferenceData(string referenceName);
}
を:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehaviorAttribute(IncludeExceptionDetailInFaults = true)]
私はiOSのから取得しよう:
NSArray *keys = [NSArray arrayWithObjects:@"referenceName", nil];
NSArray *objects = [NSArray arrayWithObjects:@"test", nil];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSData *jsonData = nil;
NSString *jsonString = nil;
if([NSJSONSerialization isValidJSONObject:jsonDictionary])
{
jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:nil];
jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"%@", jsonString);
}
NSURL *url = [NSURL URLWithString:@"http://test.com/Service.TestService.svc"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-type"];
[request setValue:jsonString forHTTPHeaderField:@"json"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];
NSError *errorReturned = nil;
NSURLResponse *theResponse =[[NSURLResponse alloc]init];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&errorReturned];
if (errorReturned) {
}
else {
NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", response);
}
誰かが私を正しい方向に向けることができますか? WCF Test Clientを使用してサービスをテストすると、jsonレスポンスが返されますが、iOSコードから呼び出しを実行すると、エラーはスローされず、私の応答は空になります。
こんにちは、上記のiOSリクエスト生成はWCFサービスのために働いています。 –