簡體   English   中英

IOS到基於REST的MVC Api服務-[獲取]有效,但參數無法通過[發布]到達服務器

[英]IOS to REST-ful MVC Api Service - [Get] works, but parameters don't reach server with [Post]

我認為標題解釋了這一點。 我可以在我的api控制器上達到Get函數。 我可以到達Post方法,但是我的參數(macAddress)為空。 我在xcode中嘗試了此代碼的許多變體:

        NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",baseURL,controller]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"macAddress=testestest";
NSData *myRequestData = [ NSData dataWithBytes: [ postString UTF8String ] length: [ postString length ] ];
[request setHTTPBody:myRequestData];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

和控制器:

    public String Post([FromBody]string macAddress)
    {
        //......
    }

(我知道我正在使用同步請求和零響應/錯誤,只是試圖弄清楚這方面)

謝謝您的幫助。

看起來您的* postString沒有[NSString stringWithFormat方法]。 我將以下代碼與自己的Restful API結合使用。

NSString *deviceToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"rsdevicetoken"];

NSString *postString = [NSString stringWithFormat:@"token=%@&active=%@&draw=%@&result=%@&message=%@",deviceToken,allNotify, draw, results, message];
NSData *postData = [postString dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://www.someurl.com/updateSubscriptions"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];

NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"%@", data);

希望這會對您有所幫助。

這是一個瘋狂的猜測,但是如果您的macAddress post參數具有以下格式: 01:23:45:67:89:ab ,則需要將':'進行url編碼為'%3A'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM