2014-01-25 28 views
0

我想通過網絡發佈參數到網頁。下面是代碼:如何在參數根據每個請求更改參數值時將參數發佈到服務器(Iphone)

<label for="id">Anv&auml;ndarnamn</label> 
<input id="username" name="username" class="login" tabindex="1" accesskey="a" type="text" value="" size="25"/> 
<label for="pw">Lösenord</label> 
<input id="password" name="password" class="login" tabindex="2" type="password" value="" size="25"/> 
<!--p> 
    <div style="color:red;font-weight:bold;">Om du &auml;r student och inte kan logga in</div>D&aring; beh&ouml;ver du f&ouml;rnya ditt l&ouml;senord.<br/><a href="https://sp.it.gu.se/ gusPwdRecovery/">Klicka h&auml;r f&ouml;r att f&ouml;r att byta l&ouml;senord</a><br /> 
</p-->       
<input type="hidden" name="lt" value="_c5A9EF067-BDF4-2301-A37D-1D9E3255257A_kBB8220EF-613E-FA01-9122-6449323644CB" /> 
<input type="hidden" name="_eventId" value="submit" /> 
<input name="submit" accesskey="l" value="Logga in" tabindex="4" type="submit" class="button right"/> 

這是我在Xcode代碼:

NSDictionary *parameters = @{@"username": @"myusername", @"password": @"mypassword", @"lt": @"_c7ED1073A-3E62-1A4D-EC55-01AC6D285908_k5F4190DC-2873-9D7A-E03F-AD63C12CC48A", @"_eventId": @"submit", @"submit": @"Logga in"}; 

的問題是,「LD」 paramater每POST請求我做的網頁改變它的價值。所以我不知道ld paramater在下一次請求中會有什麼價值。在這種情況下我應該怎麼做?有沒有解決這個問題的方法?

謝謝你提前!

+0

你使用數據庫和服務器後端代碼來做到這一點嗎?然後讓你的api返回新的ID作爲json –

+0

我很抱歉,我對此很新,你的意思是數據庫和服務器後端代碼?這是我完整的發佈請求代碼: – user3074248

+0

AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; NSDictionary * parameters = @ {@「username」:@「myusername」,@「password」:@「mypassword」,@「lt」:@「_ c7C9937ED-712D-16C2-A248-D373B45661AF_k69F90E27-0DF0-897C-110A- 2F9BBD37B966「,@」_ eventId「:@」submit「,@」submit「:@」Logga in「}; [manager POST:@「website/login」parameters:parameters success:^(AFHTTPRequestOperation * operation,id responseObject)NSData * data =(NSData *)responseObject; – user3074248

回答

0

您必須解析ID。如果頁面很複雜,則應該使用NSXMLParser。如果頁面保證是這樣簡單的,你也可以使用NSScanner:

- (NSString *) findID { 
    NSString *htmlString = // your HTML 
    NSScanner *theScanner = [NSScanner scannerWithString:htmlString]; 

    while (![theScanner isAtEnd]) { 
     NSString *src; 
     [theScanner scanUpToString:@"<label for=\"id\">" intoString:nil]; 
     BOOL success = [theScanner scanUpToString:@"</label>" intoString:src]; 
     if (success) 
      return src; 
    } 

    return nil; 
} 
+0

非常感謝您的回答!你知道我怎麼可以通過libxml2解析器做到這一點?此外,爲了獲得頁面的當前HTML我需要發送請求然後發送登錄名和密碼到頁面我需要發送另一個請求。我的問題是,每次我向頁面發送請求時,「id」參數是否會發生變化,因此我爲新請求發佈的參數不正確? – user3074248