// // WBHttpRequest.h // WeiboSDK // // Created by DannionQiu on 14-9-18. // Copyright (c) 2014年 SINA iOS Team. All rights reserved. // #import #import #pragma mark - WBHttpRequest and WBHttpRequestDelegate @class WBHttpRequest; /** 接收并处理来自微博sdk对于网络请求接口的调用响应 以及logOutWithToken的请求 */ @protocol WBHttpRequestDelegate /** 收到一个来自微博Http请求的响应 @param response 具体的响应对象 */ @optional - (void)request:(WBHttpRequest *)request didReceiveResponse:(NSURLResponse *)response; /** 收到一个来自微博Http请求失败的响应 @param error 错误信息 */ @optional - (void)request:(WBHttpRequest *)request didFailWithError:(NSError *)error; /** 收到一个来自微博Http请求的网络返回 @param result 请求返回结果 */ @optional - (void)request:(WBHttpRequest *)request didFinishLoadingWithResult:(NSString *)result; /** 收到一个来自微博Http请求的网络返回 @param data 请求返回结果 */ @optional - (void)request:(WBHttpRequest *)request didFinishLoadingWithDataResult:(NSData *)data; /** 收到快速SSO授权的重定向 @param URI */ @optional - (void)request:(WBHttpRequest *)request didReciveRedirectResponseWithURI:(NSURL *)redirectUrl; @end /** 微博封装Http请求的消息结构 */ @interface WBHttpRequest : NSObject { NSURLSessionDataTask *sessionDataTask; NSMutableData *responseData; } /** 用户自定义请求地址URL */ @property (nonatomic, strong) NSString *url; /** 用户自定义请求方式 支持"GET" "POST" */ @property (nonatomic, strong) NSString *httpMethod; /** 用户自定义请求参数字典 */ @property (nonatomic, strong) NSDictionary *params; /** WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应 */ @property (nonatomic, weak) id delegate; /** 用户自定义TAG 用于区分回调Request */ @property (nonatomic, strong) NSString* tag; /** 统一HTTP请求接口 调用此接口后,将发送一个HTTP网络请求 @param url 请求url地址 @param httpMethod 支持"GET" "POST" @param params 向接口传递的参数结构 @param delegate WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应 @param tag 用户自定义TAG,将通过回调WBHttpRequest实例的tag属性返回 */ + (WBHttpRequest *)requestWithURL:(NSString *)url httpMethod:(NSString *)httpMethod params:(NSDictionary *)params delegate:(id)delegate withTag:(NSString *)tag; /** 统一微博Open API HTTP请求接口 调用此接口后,将发送一个HTTP网络请求(用于访问微博open api) @param accessToken 应用获取到的accessToken,用于身份验证 @param url 请求url地址 @param httpMethod 支持"GET" "POST" @param params 向接口传递的参数结构 @param delegate WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应 @param tag 用户自定义TAG,将通过回调WBHttpRequest实例的tag属性返回 */ + (WBHttpRequest *)requestWithAccessToken:(NSString *)accessToken url:(NSString *)url httpMethod:(NSString *)httpMethod params:(NSDictionary *)params delegate:(id)delegate withTag:(NSString *)tag; /** 取消网络请求接口 调用此接口后,将取消当前网络请求,建议同时[WBHttpRequest setDelegate:nil]; 注意:该方法只对使用delegate的request方法有效。无法取消任何使用block的request的网络请求接口。 */ - (void)disconnect; #pragma mark - block extension typedef void (^WBRequestHandler)(WBHttpRequest *httpRequest, id result, NSError *error); /** 统一微博Open API HTTP请求接口 调用此接口后,将发送一个HTTP网络请求(用于访问微博open api) @param url 请求url地址 @param httpMethod 支持"GET" "POST" @param params 向接口传递的参数结构 @param queue 发起请求的NSOperationQueue对象,如queue为nil,则在主线程([NSOperationQueue mainQueue])发起请求。 @param handler 接口请求返回调用的block方法 */ + (WBHttpRequest *)requestWithURL:(NSString *)url httpMethod:(NSString *)httpMethod params:(NSDictionary *)params queue:(NSOperationQueue*)queue withCompletionHandler:(WBRequestHandler)handler; /** 统一HTTP请求接口 调用此接口后,将发送一个HTTP网络请求 @param url 请求url地址 @param httpMethod 支持"GET" "POST" @param params 向接口传递的参数结构 @param queue 发起请求的NSOperationQueue对象,如queue为nil,则在主线程([NSOperationQueue mainQueue])发起请求。 @param handler 接口请求返回调用的block方法 */ + (WBHttpRequest *)requestWithAccessToken:(NSString *)accessToken url:(NSString *)url httpMethod:(NSString *)httpMethod params:(NSDictionary *)params queue:(NSOperationQueue*)queue withCompletionHandler:(WBRequestHandler)handler; @end