ASIHttpRequest DELETE metodo con i parametri del corpo

Io uso ASIHttpRequest (v. 1.8-95) per Iphone e volevo creare una richiesta DELETE sincrona insieme ad alcuni dati del corpo. Sono andato in questo modo:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:nsUrl]; [request appendPostData:[@"some body params" dataUsingEncoding:NSUTF8StringEncoding]]; [request setRequestMethod:@"DELETE"]; [request startSynchronous]; 

Anche se sono stato confermato dal lato client via

 NSLog(@"request: method:%@", request.requestMethod); 

che il metodo è stato impostato correttamente su "DELETE" sul lato server è stata ricevuta una richiesta "POST"!

Se solo tralascio

 [request appendPostData: ..] 

un DELETE corretto viene ricevuto dal lato server)

Allora, cosa c'è di sbagliato nella mia richiesta? Grazie per qualsiasi soluzione.

Saluti

creator_11

Solutions Collecting From Web of "ASIHttpRequest DELETE metodo con i parametri del corpo"

La ricerca nel gruppo asihttprequest ( http://groups.google.com/group/asihttprequest/search?group=asihttprequest&q=delete&qt_g=Search+this+group ) mostra alcuni post pertinenti tra cui una soluzione suggerita:

chiama buildPostBody sulla tua richiesta dopo aver popolato il corpo, ma prima di impostare il metodo di richiesta.

I verbi e gli usi HTTP non possono essere solo mescolati e abbinati. OK, possono, ma dovresti cambiare il server per supportre l'utilizzo non standard. DELETE dovrebbe utilizzare l'URI della risorsa da eliminare e questo è tutto. Nessun parametro POST, nessun allegato.

Se davvero vuoi submit un po 'di dati in più insieme addRequestHeader:value: , puoi impostarlo nelle intestazioni della richiesta ( addRequestHeader:value: , e il lato server estrae le informazioni, ma evita di farlo se puoi. Il motivo è che il DELETE dovrebbe eliminare una "cosa" a cui fa riferimento l'URI. Se la logica aziendale dell'applicazione server dice che l'eliminazione dovrebbe interessare altri oggetti (ad es. Eliminazione a catena), l'applicazione client non dovrebbe saperlo.

Puoi spiegare cosa stai provando a POST mentre esegui un DELETE, forse posso offrire una soluzione alternativa.