SinaWeiboRequest.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //
  2. // SinaWeiboRequest.h
  3. // sinaweibo_ios_sdk
  4. // Based on OAuth 2.0
  5. //
  6. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  7. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  8. // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  9. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  10. // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  11. // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  12. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  13. // OTHER DEALINGS IN THE SOFTWARE.
  14. //
  15. // Copyright 2011 Sina. All rights reserved.
  16. //
  17. #import <Foundation/Foundation.h>
  18. @class SinaWeiboRequest;
  19. @class SinaWeibo;
  20. /**
  21. * @description 第三方应用访问微博API时实现此此协议,当sdk完成api的访问后通过传入的此类对象完成接口访问结果的回调,应用在协议实现的相应方法中接收访问结果并做对应处理。
  22. */
  23. @protocol SinaWeiboRequestDelegate <NSObject>
  24. @optional
  25. - (void)request:(SinaWeiboRequest *)request didReceiveResponse:(NSURLResponse *)response;
  26. - (void)request:(SinaWeiboRequest *)request didReceiveRawData:(NSData *)data;
  27. - (void)request:(SinaWeiboRequest *)request didFailWithError:(NSError *)error;
  28. - (void)request:(SinaWeiboRequest *)request didFinishLoadingWithResult:(id)result;
  29. @end
  30. @interface SinaWeiboRequest : NSObject
  31. {
  32. SinaWeibo *sinaweibo;//weak reference
  33. NSString *url;
  34. NSString *httpMethod;
  35. NSDictionary *params;
  36. NSURLConnection *connection;
  37. NSMutableData *responseData;
  38. id<SinaWeiboRequestDelegate> delegate;
  39. }
  40. @property (nonatomic, assign) SinaWeibo *sinaweibo;
  41. @property (nonatomic, retain) NSString *url;
  42. @property (nonatomic, retain) NSString *httpMethod;
  43. @property (nonatomic, retain) NSDictionary *params;
  44. @property (nonatomic, assign) id<SinaWeiboRequestDelegate> delegate;
  45. + (SinaWeiboRequest *)requestWithURL:(NSString *)url
  46. httpMethod:(NSString *)httpMethod
  47. params:(NSDictionary *)params
  48. delegate:(id<SinaWeiboRequestDelegate>)delegate;
  49. + (SinaWeiboRequest *)requestWithAccessToken:(NSString *)accessToken
  50. url:(NSString *)url
  51. httpMethod:(NSString *)httpMethod
  52. params:(NSDictionary *)params
  53. delegate:(id<SinaWeiboRequestDelegate>)delegate;
  54. + (NSString *)getParamValueFromUrl:(NSString*)url paramName:(NSString *)paramName;
  55. + (NSString *)serializeURL:(NSString *)baseURL params:(NSDictionary *)params httpMethod:(NSString *)httpMethod;
  56. - (void)connect;
  57. - (void)disconnect;
  58. @end