首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS将Sendy集成到应用程序中

iOS将Sendy集成到应用程序中
EN

Stack Overflow用户
提问于 2013-04-04 20:50:41
回答 2查看 374关注 0票数 0

我正在制作一个iPhone应用程序,需要与Sendy进行通信。我相信它使用了某种JSON,但我不太确定,也不知道从哪里开始。我对API的subscribe部分特别感兴趣。基本上,我需要知道如何从我的应用程序.中与Sendy对话。

任何帮助都是非常感谢的。

我的代码:

代码语言:javascript
复制
- (IBAction)submitButtonPressed:(id)sender
{
    self.data = [[NSMutableData alloc] initWithLength:0];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.erwaysoftware.com/sendy/subscribe"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"john@test.com" forHTTPHeaderField:@"email"];
    [request setValue:@"john" forHTTPHeaderField:@"name"];
    [request setValue:@"LxxxxxxxxxxxxxxxxxxxxQ" forHTTPHeaderField:@"list"];
    [request setValue:@"true" forHTTPHeaderField:@"boolean"];

    NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
    [conn start];

}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [self.data setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d {
    [self.data appendData:d];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", @"")
                                 message:[error localizedDescription]
                                delegate:nil
                       cancelButtonTitle:NSLocalizedString(@"OK", @"")
                       otherButtonTitles:nil] show];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *responseText = [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];

    // Do anything you want with it

    NSLog(@"%@", responseText);
}

当日志发生时,字符串为空。我通过断点知道最后一个方法被调用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 21:01:56

从API来看,这都是纯文本响应。

因为它是一篇文章,所以您可以使用NSURLConnection来编写请求。有关格式化响应的信息,请参见这个问题

另一种选择是使用像AFNetworkingRestKit这样的东西,如果您使用API做更多的工作,这可能会更友好一些。

票数 2
EN

Stack Overflow用户

发布于 2014-03-02 05:29:51

我猜你已经解决了这个问题,但是如果其他人被困在这里(就像我一样),我想我应该把我做过的事情发出去。

您需要做的第一件事是创建一个名为NSString+URLEncoding (或其他什么)的类别,它将从blah@blah.com中获取您的电子邮件和姓名字段,并将其转换为blah%40blah.com。我从方便的博客文章中修改了这个发现这里

代码语言:javascript
复制
@interface NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding;
@end

#import "NSString+URLEncoding.h"

@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                                           (CFStringRef)self,
                                                           NULL,
                                                           (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                                                             CFStringConvertNSStringEncodingToEncoding(encoding)));}
@end

好的,现在只需导入NSString+URLEncoding.h并添加以下代码,您就可以开始工作了。这个帖子帮助我完成了这个部分

代码语言:javascript
复制
- (IBAction)submitButtonPressed:(id)sender
{
NSMutableURLRequest *newRequest = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://stashdapp.com/sendy/subscribe"]];
[newRequest setHTTPMethod:@"POST"];
[newRequest setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

NSString *email = @"name@domain.com";
NSString *name = @"First Lastname";
NSString *list = @"XXXXXXXXXXXXXXXXXX";

NSString *postData = [NSString stringWithFormat:@"email=%@&boolean=true&name=%@&list=%@", [email urlEncodeUsingEncoding:NSUTF8StringEncoding],[name urlEncodeUsingEncoding:NSUTF8StringEncoding],list];

[newRequest setHTTPBody:[postData dataUsingEncoding:NSUTF8StringEncoding]];

NSURLConnection *conn = [NSURLConnection connectionWithRequest:newRequest delegate:self];
[conn start];
}

您仍然包括您在问题中引用的委托方法。

希望它能帮到别人!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15821452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档