iOS post和get请求

get和post请求的区别

1,post请求 请求地址和参数分离,比get更安全

2,get请求能上传数据不能上传文件,而post两者都可以

3,get请求在浏览器中的字符串长度最大限制为1024,post没有限制

4,post上传文件 文件大小的限制是由后台设置的

下面是一个登录、上传头像、调用相册的简单功能,来帮助理解post的功能

【AFN POST用法】


    let manager = AFHTTPSessionManager()

    //设置响应的数据类型为NSData,如果不设置可能会自动解析成字典或数组
    manager.responseSerializer = AFHTTPResponseSerializer()
    
    //af设置请求头的方法
    //sessionManager.requestSerializer = AFHTTPRequestSerializer()
    //sessionManager.requestSerializer.setValue("", forHTTPHeaderField: "")

    // af执行post
    //如果需要上传文件,就用带constructingBodyWithBlock的方法
    //如果不需要上传文件,就选不带constructingBodyWithBlock的方法
    //constructingBodyWithBlock里设置需要上传的文件   
    //parameters为网络请求的参数,需要以键值对的形式存到字典中

    //启动拥有上传文件功能的post请求
    manager.POST(urlStr, parameters: bodyDic, constructingBodyWithBlock: { (formData) in
        //在这个闭包里设置需要上传的文件
            
        //将图片转成NSData
        let imageData = UIImagePNGRepresentation(image)!
            
        //第一个参数是需要上传的文件,第二个是后台规定的参数名
        //第三个文件名,但是后台一般不用,所以意义不大
        //第四个后台规定的文件类型。例:"image/png" "image/jpeg" "text/html" "text/json" "text/xml"等
        formData.appendPartWithFileData(imageData, name: "headimage", fileName: "1.png", mimeType: "image/png")
            
        }, progress: nil, success: { (dataTask, responseObject) in
            //上传成功的回调
            let dic = try! NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: .AllowFragments)
            print(dic)
                
        }) { (dataTask, error) in
            print("上传时网络发生问题")
    }


使用系统相册

//打开系统相册
    let imagePickerController = UIImagePickerController()//照片选择器
    imagePickerController = self//<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
    self.presentViewController(imagePickerController, animated: true) {}

//选择照片后触发的方法
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

        //获取点击到的图片
        let image = info[UIImagePickerControllerOriginalImage] as! UIImage

        //将图片转成NSData
        let imageData = UIImagePNGRepresentation(image)!

        imagePickerController.dismissViewControllerAnimated(false, completion: nil)
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容