在IOS上使用URL将JSON发布到API

在IOS上使用URL将JSON发布到API,ios,json,post,alarm,Ios,Json,Post,Alarm,我设计了一个警报,根据该警报,我需要在api上发布用户设置为警报的内容,稍后api将处理该过程,如果警报时间到了,则不会通知我。因此,基本上,我整天都在搜索,并带来了: 在这里,我付出了巨大的努力!请帮我进一步了解 NSMutableDictionary *alarmDic = [[NSMutableDictionary alloc] initWithCapacity:4]; NSLog(@"token: %@", self.token); [alarmDic setObjec

我设计了一个警报,根据该警报,我需要在api上发布用户设置为警报的内容,稍后api将处理该过程,如果警报时间到了,则不会通知我。因此,基本上,我整天都在搜索,并带来了:

在这里,我付出了巨大的努力!请帮我进一步了解

 NSMutableDictionary *alarmDic = [[NSMutableDictionary alloc] initWithCapacity:4];
    NSLog(@"token: %@", self.token);
    [alarmDic setObject:[NSNumber numberWithInteger:42] forKey:@"Token"];
    NSLog(@"kur id: %lu", alarm.kurID);
    [alarmDic setObject:[NSNumber numberWithInteger:alarm.kurID] forKey:@"CurrencyId"];
    NSLog(@"not val: %f", alarm.kurAlis);
    [alarmDic setObject:[NSNumber numberWithFloat:alarm.kurAlis] forKey:@"NotificationValue"];
    NSLog(@"%ld", (long)alarm.kurTur);
    [alarmDic setObject:[NSNumber numberWithInteger:alarm.kurTur] forKey:@"Type"];

    NSData* jsonData = [NSJSONSerialization dataWithJSONObject:alarmDic
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:nil];
    NSLog(@"%@", [[NSString alloc] initWithData:jsonData
                                       encoding:NSUTF8StringEncoding]);

    NSString *dataLength = [NSString stringWithFormat:@"%lu", (unsigned long)[jsonData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:@"http://api-dvzalt.azurewebsites.net/api/Notification/PostNotification"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:dataLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:jsonData];

    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if(conn) {
        NSLog(@"Connection Successful");
    } else {
        NSLog(@"Connection could not be made");
    }
在日志窗口中

requestReply: Connection Successful
然而,api上没有发生任何事情,一如既往地告诉我们这一点

The requested resource does not support http method 'GET'.
这是我的困惑。它说连接成功,但在API上,仍然是一样的。在这种情况下我该怎么办?我可能会跳过一些东西,但我不知道我跳过了什么。我想我已经完成了所有的步骤

注意:API工作得很好,很可能是关于我的代码


谢谢

所以我很好奇,您的web处理程序中是否没有JSON数据的字段名?像“jsonData”之类的?现在,您正在将JSON数据填充到身体中,但是没有识别字段名供处理程序提取

我的想法是:

NSString jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSString requestString = [NSString stringWithFormat:@"jsonData=%@", jsonString];

然后对requestString进行编码,并在您的身体中使用它。

所以我只做了一件事。我应该把请求字符串放在哪里?HTTPBody,你是说body?它需要一个数据。。