簡體   English   中英

ASIFormDataRequest在模擬器上工作但在設備上不工作?

[英]ASIFormDataRequest works on simulator but not on device?

我正在使用ASIFormDataRequest發布三個值,即url,title和summary。 所有這些都在模擬器上工作正常,但它不在設備上工作。 這是我正在使用的代碼:

- (IBAction)addLinkPressed:(UIButton *)sender {

    ASIFormDataRequest *loginRequest = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://MyWebsite.com/login.php"]];
    [loginRequest setRequestMethod:@"POST"];
    [loginRequest setPostValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"] forKey:@"username"];
    [loginRequest setPostValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"] forKey:@"password"];
    [loginRequest setUseKeychainPersistence:YES];
    [loginRequest setDelegate:self];

    [loginRequest setDidFinishSelector:@selector(requestLoginFinished:)];
    [loginRequest setDidFailSelector:@selector(requestLoginFailed:)];
    [loginRequest startSynchronous];



    NSString *strURL = @"http://MyWebsite.com/send_link.php";
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];
    [request setDelegate:self];
    [request setPostValue:self.linkField.text forKey:@"url"];
    [request setPostValue:self.linkTitleField.text forKey:@"title"];
    [request setPostValue:self.linkSummaryField.text forKey:@"summary"];

    [request setDidFinishSelector:@selector(requestDone:)];
    [request setDidFailSelector:@selector(requestWentWrong:)];
    [request startAsynchronous];
}

有人可以幫幫我!

首先:ASIRequest不再受支持。 眾所周知,在某些情況下會出現問題,並且不會修復錯誤。

第二,關於你的問題,我看到兩個可能發生錯誤的地方(模擬器和設備之間的區別):

  1. 您確定在設備上[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"][[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"]設置正確嗎?

  2. 在iOS模擬器上,您無法訪問鑰匙串,因此此設置( [loginRequest setUseKeychainPersistence:YES]; )也可能導致設備出現問題。

我建議檢查NSUserDefaults並更好地使用另一個框架,即RestKit

編輯:

使用RestKit的示例:

[RKClient clientWithBaseURLString:@"http://example.com"];
RKClient *rkclient = [RKClient sharedClient];
RKParams *params = [RKParams paramsWithDictionary:[NSDictionary dictionaryWithObjectsAndKeys:
                                                   username, @"username",
                                                   password, @"password", nil]];
[rkclient post:@"/profile" params:params delegate:self];

// implement needed delegate methods

暫無
暫無

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

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