2010-05-01 3 views
0

Je développe une application. Dans lequel je poste une image à la page .aspx. Le HTML pour la page est comme ci-dessous.Post les données à la page aspx de l'application iphone

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>"> 
<html xmlns="http://www.w3.org/1999/xhtml>"> 
<head><title> 
Untitled Page 
</title><link href="App_Themes/XXX/XXX.css" type="text/css" rel="stylesheet" /></head> 
<body> 
    <form name="form1" method="post" action="Default16.aspx" id="form1" enctype="multipart/form-data">  
<div>  
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQwMjY2MDA0Mw9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRktr+hG1VVXZsO01PCyj61d6Ulqy8=" /> 
</div> 
<div> 
    <div style="float:left;margin:10px"> 
     <input type="file" name="fuImage" id="fuImage" /> 
    </div> 
    <div style="float:right"> 
      <input type="submit" name="btnPost" value="Post Image" id="btnPost" /> 
    </div> 
    </div> 
    </form> 
</body> 
</html> 

Maintenant, je vous envoie une demande de ma demande alors je reçois « Erreur de domaine = kCFErrorDomainCFNetwork Code = 303 UserInfo = 0xf541c0 » L'opération n'a pas pu être terminée. (kCFErrorDomainCFNetwork error 303.) ""

J'ai essayé d'utiliser SynchronousRequest et aSynchronousRequest, mais les deux ne fonctionnent pas. J'ai également utilisé le code d'échantillon de pomme.

Voici le code pour l'application iPhone

UIImage *image=[UIImage imageNamed:@"photo2.jpg"]; 
NSData *imageData = UIImageJPEGRepresentation(image, 90); 
NSString *urlString = @"http://XXXXXXXX.com/Post.aspx"; 
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"POST"]; 
NSString *boundary = [NSString stringWithString:@"----WebKitFormBoundarylU9pAl5wPrF+Tk52"]; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; 
[request addValue:contentType forHTTPHeaderField:@"Content-Type"]; 
NSMutableData *body = [NSMutableData data]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"fuimage\"; filename=\"asd.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithString:@"Content-Type: image/jpeg\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[NSData dataWithData:imageData]]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setHTTPBody:body]; 
// NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
// NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
// NSLog(returnString); 
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
if(theConnection) 
{ 
webData = [[NSMutableData data] retain]; 
} 
else 
{ 
NSLog(@"theConnection is NULL"); 
} 

Répondre

2

En règle générale, si vous souhaitez publier des données à partir d'une source externe (autre que ASPX, qui fait des choses folles) vous êtes beaucoup mieux avec un simple "handler" (ashx) ou une route ASP.NET MVC. Dans le cas du "gestionnaire", vous pouvez accéder directement au formulaire de requête/chaîne de requête, etc. Dans le cas MVC, il devrait surtout être fait pour vous.

aspx n'est pas un ami pour les messages brutes.

Dans le cas spécifique, kCFErrorDomainCFNetworksuggère une sorte d'erreur réseau, mais vous auriez besoin d'une trace http pour l'identifier à coup sûr.

+0

Merci pour votre réponse. J'ai essayé avec d'autres manières maintenant je ne reçois aucune erreur mais suis également incapable d'obtenir n'importe quelle réponse du côté de serveur. Aussi, lorsque j'envoie une demande au serveur du serveur d'application iPhone ne peut pas obtenir de demande de l'application. Avez-vous une idée de ce problème? Y a-t-il un problème avec l'architecture de l'iPhone? S'il vous plaît donnez-moi votre suggestion. Je vais suivre la direction donnée par vous. Merci. –

Questions connexes