概述参考(tiny4cocoa):http://tiny4cocoa.com/thread-1771-1-1.html 参考(csdn):http://www.voidcn.com/article/p-zalqcvkf-rb.html 1. 首先在http://open.t.sina.com.cn / 中申请成为开发者,再创建不同的应用,获得相应的 App Key (在下面链接中的source即为
参考(tiny4cocoa):http://tiny4cocoa.com/thread-1771-1-1.html
参考(csdn):http://www.voidcn.com/article/p-zalqcvkf-rb.html
1. 首先在http://open.t.sina.com.cn / 中申请成为开发者,再创建不同的应用,获得相应的 App Key (在下面链接中的source即为app key)
2. 登录认证:
Nsstring *authString = [ Nsstring stringWithFormat : @"%@:%@" , sinaIDFIEld . text ,sinaPasswordFIEld . text ];
NSData *authData = [authString dataUsingEnCoding : NSUTF8StringEnCoding ];
Nsstring *authValue = [ Nsstring stringWithFormat : @"Basic %@" ,[authData base64EnCodingWithlineLength : 80 ]];
NSURL *url = [ NSURL URLWithString : @"http://api.t.sina.com.cn/account/verify_credentials.xml?source=3930264715 " ];
NSMutableURLRequest *request = [[ NSMutableURLRequest alloc ] initWithURL :url];
[request sethttpMethod : @"GET" ];
[request setValue :authValue forhttpheaderFIEld : @"Authorization" ];
NSURLResponse *response;
NSError *error;
[ NSURLConnection sendSynchronousRequest :request returningResponse :&response error :&error];
[request release ];
NShttpURLResponse *httpResponse = ( NShttpURLResponse *)response;
int statusCode = [httpResponse statusCode ];
NSLog ( @"status code = %d" ,statusCode);
if (statusCode != 200 ) {
alertTitle = @" 帐号或密码错误 " ;
alertMassage = @" 请您输入正确的帐号和密码! " ;
} else {
alertTitle = @"" ;
alertMassage = @" 登录成功! " ;
}
UIAlertVIEw *alert = [[ UIAlertVIEw alloc ] initWithTitle :alertTitle
message :alertMassage
delegate : nil cancelbuttonTitle : @" 确定 "
otherbuttonTitles : nil ];
[alert show ];
[alert release ];
3. 将内容(图片 文字)发送到新浪微博
Nsstring *authString = [ Nsstring stringWithFormat : @"%@:%@" ,[[ NSUserDefaults standardUserDefaults ] objectForKey : @"sinaID" ],[[ NSUserDefaults standardUserDefaults ] objectForKey : @"sinaPassword" ]];
Nsstring *boundary = @"0xKHTMLbOuNdArYckkk" ;
Nsstring *filename = @" test .jpg" ;
NSData *imageData = UIImageJPEGRepresentation (shareImage, 1 );
Nsstring *bodyPrefixString = [ Nsstring stringWithFormat : @"--%@/r/n" ,boundary];
Nsstring *bodySuffixString = [ Nsstring stringWithFormat : @"/r/n--%@--/r/n" ,36); Font-family:Monaco; Font-size:12px"> Nsstring *contentdisposition = [ Nsstring stringWithFormat : @"Content-disposition: form-data; name="pic"; filename="%@"/r/n" ,filename];
Nsstring *contentimageType = [ Nsstring stringWithFormat : @"Content-Type: image/%@/r/n" ,[filename pathExtension ]];
Nsstring *contentTransfer = @"Content-transfer-encoding: binary/r/n/r/n" ;
Nsstring *bodyUpdateFIEld = [ Nsstring stringWithFormat : @"Content-disposition: form-data;name="status"/r/n/r/n%@/r/n" ,[ Nsstring stringWithFormat : @"%@" , textVIEw . text ]];
NSMutableData *postbody = [ NSMutableData data ];
[postbody appendData :[bodyPrefixString dataUsingEnCoding : NSUTF8StringEnCoding allowLossyConversion : NO ]];
[postbody appendData :[bodyUpdateFIEld dataUsingEnCoding : NSUTF8StringEnCoding ]];
[postbody appendData :[contentdisposition dataUsingEnCoding : NSUTF8StringEnCoding ]];
[postbody appendData :[contentimageType dataUsingEnCoding : NSUTF8StringEnCoding ]];
[postbody appendData :[contentTransfer dataUsingEnCoding : NSUTF8StringEnCoding ]];
[postbody appendData :imageData];
[postbody appendData :[bodySuffixString dataUsingEnCoding : NSUTF8StringEnCoding allowLossyConversion : NO ]];
Nsstring *baseURL = [ Nsstring stringWithFormat :@"http://api.t.sina.com.cn/statuses/upload.xml?source=3930264715 " ];
NSURL *url = [ NSURL URLWithString :baseURL];
NSMutableURLRequest *mainRequest = [[ NSMutableURLRequest alloc ] initWithURL :url
cachePolicy : NSURLRequestUseProtocolCachePolicy
timeoutInterval : 30.0f ];
[mainRequest sethttpMethod : @"POST" ];
[mainRequest setValue :authValue forhttpheaderFIEld : @"Authorization" ];
Nsstring *ContentType = [ Nsstring stringWithFormat : @"multipart/form-data; boundary=%@" ,boundary, nil ];
[mainRequest setValue :ContentType forhttpheaderFIEld : @"Content-Type" ];
[mainRequest sethttpBody :postbody];
NSURLResponse *shareResponse;
NSData *responseData = [ NSURLConnection sendSynchronousRequest :mainRequest returningResponse:&shareResponse error :&error];
Nsstring *responseString = [[ Nsstring alloc ] initWithData :responseData enCoding :NSUTF8StringEnCoding ];
NShttpURLResponse *httpResponse = ( NShttpURLResponse *)shareResponse;
BOol succeed = NO ;
if (statusCode == 200 ) {
succeed = YES ;
[mainRequest release ];
NSLog ( @"response string : %@" ,responseString);
[responseString release ];
[ uploaDWaiting stopAnimating ];
Nsstring *message = nil ;
if (succeed) {
message = @" 分享成功 " ;
message = @" 分享失败 " ;
UIAlertVIEw *alert = [[ UIAlertVIEw alloc ] initWithTitle : @"" message :message
delegate : self
cancelbuttonTitle : @" 确定 " otherbuttonTitles : nil ];
[alert release ];
总结
以上是内存溢出为你收集整理的ios 分享到新浪微博全部内容,希望文章能够帮你解决ios 分享到新浪微博所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)