ios 网络请求总结加强对中文的处理 问题:URL不允许写中文 在GET请求中,相关代码段打断点以验证。

本文总结了iOS开发中网络请求GET和POST的使用,包括创建请求、参数处理,特别是对中文的支持。强调了POST请求在处理用户隐私数据时的优势,探讨了GET和POST的误解,如URL长度限制、安全性以及HTTP协议中的正交性。同时讨论了GET和POST在实际应用中的安全性问题,包括浏览器和服务器的限制以及潜在的安全风险。
摘要由CSDN通过智能技术生成

开发还是需要多多练习的 ,下面是一些常用的步骤:

一、简单说明

创建Get 请求

//    1.设置请求路径

    NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
    NSURL *url=[NSURL URLWithString:urlStr];
    
//    2.创建请求对象
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    
//    3.发送请求
    NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要传递参数
    
//    2.创建请求对象
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默认为get请求
    request.timeoutInterval=5.0;//设置请求超时为5秒
    request.HTTPMethod=@"POST";//设置请求方法
    
    //设置请求体
    NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
    //把拼接后的字符串转换为data,设置请求体
    request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
    
//    3.发送请求
三、使用
     1)、通过请求头告诉服务器,客户端的类型(可以通过修改,欺骗服务器)
// 1.设置请求路径
    NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要传递参数
    
//    2.创建请求对象
    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默认为get请求
    request.timeoutInterval=5.0;//设置请求超时为5秒
    request.HTTPMethod=@"POST";//设置请求方法
    
    //设置请求体
    NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
    //把拼接后的字符串转换为data,设置请求体
    request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
    
    //客户端类型,只能写英文
    [request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"];
 
     2)、
         加强对中文的处理
查看源码打印?

001 1、     同步GET请求
002
003     //第一步,创建URL
004
005     NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
006
007      
008
009     //第二步,通过URL创建网络请求
010
011     NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
012
013     //NSURLRequest初始化方法第一个参数:请求访问路径,第二个参数:缓存协议,第三个参数:网络请求超时时间(秒)
014
015       其中缓存协议是个枚举类型包含:
016
017       NSURLRequestUseProtocolCachePolicy(基础策略)
018
019       NSURLRequestReloadIgnoringLocalCacheData(忽略本地缓存)
020
021       NSURLRequestReturnCacheDataElseLoad(首先使用缓存,如果没有本地缓存,才从原地址下载)
022
023       NSURLRequestReturnCacheDataDontLoad(使用本地缓存,从不下载,如果本地没有缓存,则请求失败,此策略多用于离线操作)
024
025       NSURLRequestReloadIgnoringLocalAndRemoteCacheData(无视任何缓存策略,无论是本地的还是远程的,总是从原地址重新下载)
026
027       NSURLRequestReloadRevalidatingCacheData(如果本地缓存是有效的则不下载,其他任何情况都从原地址重新下载)
028
029     //第三步,连接服务器
030
031     NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值