当通过Objective C调用时,Web服务方法不会被命中

我的App_Code / IGetEmployees.vb文件

<ServiceContract()> _ Public Interface IGetEmployees <OperationContract()> _ <WebInvoke(Method:="POST", ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped, UriTemplate:="json/contactoptions")> _ Function GetAllContactsMethod(strCustomerID As String) As List(Of NContactNames) End Interface 

我的App_Code / GetEmployees.vb文件

  <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 

NContactNames是一个包含3个属性的类。 所以我使用ASP.NET Web服务从SQL服务器检索信息,并以JSON格式传递给我的iPad。 我有一个parameter passing的问题。 所以就像你看到我有2个文件IGetEmployees.vb和GetEmployees.vb。 我正在实现GetAllContactsMethod方法。 GetEmployees.vb文件(Utilities.log)中的两行发生了什么,它们从不logging。 该函数根本没有被调用。

我的目标c代码来调用这个函数

  NSString *param = [NSString stringWithFormat:@"strCustomerID=%@",strCustomerID]; jUrlString = [NSString stringWithFormat:@"%@",@"http://xyz-dev.com/GetEmployees.svc/json/contactoptions"]; jurl = [NSURL URLWithString:jUrlString]; NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:jurl]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:[param dataUsingEncoding:NSUTF8StringEncoding]]; NSLog(@" request string is %@",[[request URL] absoluteString]); NSLog(@"Done"); NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self]; if(theConnection) { jData = [NSMutableData data]; NSError *jError; NSMutableDictionary *json =[NSJSONSerialization JSONObjectWithData:jData options:kNilOptions error:&jError]; NSLog(@"%@",json); //Gets Here and prints (null) NSLog(@"Done"); //prints this as well. } else { NSLog(@"No"); } 

在发布这个代码的时候,“if”语句是真的,并且(null)被打印,然后是“完成”我的绝对请求的输出是:请求string是http://xyz-dev.com/GetEmployees.svc/ json / contactoptions这是我第一次写json接受参数。 所以我可能会错过一些东西。是什么?为什么在Visual Studio方面,函数根本就没有被调用。 如果您需要更多信息,请询问。谢谢…

这是Objetive-C的方法。

 -(void) insertEmployeeMethod { if(firstname.text.length && lastname.text.length && salary.text.length) { NSString *str = [BaseWcfUrl stringByAppendingFormat:@"InsertEmployee/%@/%@/%@",firstname.text,lastname.text,salary.text]; NSURL *WcfSeviceURL = [NSURL URLWithString:str]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:WcfSeviceURL]; [request setHTTPMethod:@"POST"]; // connect to the web NSData *respData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; // NSString *respStr = [[NSString alloc] initWithData:respData encoding:NSUTF8StringEncoding]; NSError *error; NSDictionary* json = [NSJSONSerialization JSONObjectWithData:respData options:NSJSONReadingMutableContainers error:&error]; NSNumber *isSuccessNumber = (NSNumber*)[json objectForKey:@"InsertEmployeeMethodResult"]; //create some label field to display status status.text = (isSuccessNumber && [isSuccessNumber boolValue] == YES) ? [NSString stringWithFormat:@"Inserted %@, %@",firstname.text,lastname.text]:[NSString stringWithFormat:@"Failed to insert %@, %@",firstname.text,lastname.text]; } } 

在运行代码之前,使用POSTMANtesting您的URL,是Google Chrome中的应用程序。 问候。