Objective-C / CocoaHttpServer - 尝试使用一个参数执行简单的GET请求

时间:2013-08-27 10:26:51

标签: objective-c get-request cocoahttpserver

我正在尝试使用https://github.com/robbiehanson/CocoaHTTPServer处的“CocoaHTTPServer”。我已将它添加到我的项目中,现在,如果我在浏览器上输入类似这样的内容:192.168.3.114:45000我收到一个名为index的html页面,其中包含一条简单的欢迎消息(此页面存储在默认项目中)。还行吧。它工作正常。我现在需要理解的是,我怎样才能在浏览器上输入类似“192.168.3.114:52000/getElement”的简单GET请求,并在浏览器上接收一个简单的字符串。你能帮我一下吗?我不知道我可以在哪里配置或检查这个,因为有一些类。我正在尝试研究HTTPConnection类,但我很困惑,因为我是Objective-c编程的新手。 感谢

2 个答案:

答案 0 :(得分:4)

您必须使用自定义HTTPConnection子类

@interface MyHTTPConnection : HTTPConnection
...
@end

然后你可以进行自定义URL处理

@implementation MyHTTPConnection

    - (NSObject<HTTPResponse> *)httpResponseForMethod:(NSString *)method URI:(NSString *)path
    {
    HTTPLogTrace();

    if ([path isEqualToString:@"/getElement"])
    {
            NSData *data = ...
            HTTPDataResponse *response = [[HTTPDataResponse alloc] initWithData:data];
            return response;
    }

        // default behavior for all other paths  
    return [super httpResponseForMethod:method URI:path];
    }

@end

和设置HTTPServer connectionClass,以便您的服务器知道您想自己处理连接

[httpServer setConnectionClass:[MyHTTPConnection class]];

答案 1 :(得分:-1)

您可以执行NSURL请求,然后将服务器响应作为NSString获取:

NSString *URL = @"http://yoururlhere.com?var1=";
URL = [URL stringByAppendingString: yourvarstring];
NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: URL]];

NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
//Check if the server has any output
if([serverOutput length] == 0)
{
    //Do something
} else {
    //Do Something else
}