<ServiceContract()> _
Public Interface IGetEmployees
<OperationContract()> _
<WebInvoke(Method:="GET", ResponseFormat:=WebMessageFormat.Json,BodyStyle:=WebMessageBodyStyle.Wrapped, UriTemplate:="json/contactoptions/?strCustomerID={strCustomerID}")> _
Function GetAllContactsMethod(strCustomerID As String) As List(Of NContactNames)
End Interface
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function GetAllContactsMethod(strCustomerID As String) As List(Of NContactNames) Implements IGetEmployees.GetAllContactsMethod
Utilities.log("Hit get all contacts at 56")
Dim intCustomerID As Integer = Convert.ToInt32(strCustomerID)
Dim lstContactNames As New List(Of NContactNames)
'I add some contacts to the list.
Utilities.log("returning the lst count of " & lstContactNames.Count)
Return lstContactNames
End Function
したがって、上記のコードを記述して、このhttp://xyz-dev.com/GetEmployees.svc/json/contactoptions/?strCustomerID=123のようにブラウザーで呼び出すと、JSON形式の結果として10行が取得されます。それは私が意図した通りです。しかし、Objective C側から呼び出すと、このような例外がスローされます
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
私のObjectiveCコードは次のとおりです。
NSString *strCustomerID = [NSString stringWithFormat:@"%i",123];
jUrlString = [NSString stringWithFormat:@"%@?strCustomerID=%@",@"https://xyz-dev.com/GetEmployees.svc/json/contactoptions/",strCustomerID];
NSLog(@"the jurlstring is %@",jUrlString);
NSURL *jurl = [NSURL URLWithString:jUrlString];
NSError *jError;
NSData *jData = [NSData dataWithContentsOfURL:jurl];
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:jData options:kNilOptions error:&jError];
NSLog(@"%@",json);
NSLog(@"Done");
NSJSONSerialization行で例外が発生します。つまり、これは私の質問の続きのようなものです。ObjectiveCを介して呼び出されたときにWebサービスメソッドがヒットしませんでした。コードを少し変更したので、新しい質問を投稿しました。それは私がasp側でuritemplateを書いている正しい方法ですか?それは私がiOS側で呼んでいる正しい方法ですか?さらに情報が必要な場合はお知らせください。ありがとう..