1

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

4

2 回答 2

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]];
于 2013-08-27T12:00:44.540 回答
-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
}
于 2013-08-27T11:04:01.430 回答