的Objective-C / CocoaHttpServer - 试图做一个简单的GET请求有一个

2019-10-18 13:17发布

我试图用“CocoaHTTPServer”在发现https://github.com/robbiehanson/CocoaHTTPServer 。 我已经把它添加到我的项目,现在,如果我在我的浏览器是这样的类型:192.168.3.114:45000我收到称为指数用一个简单的欢迎消息的HTML页(此页面被存储在默认的项目中)。 还行吧。 它工作正常。 我现在需要明白,是我可以做例如在浏览器上像“192.168.3.114:52000/getElement”一个简单的GET请求打字和浏览器中收到一个简单的字符串。 能否请您给我的帮助吗? 我不知道在哪里可以配置或检查,是因为有一些类。 我试图研究HTTPConnection类,但我要去混淆,因为我在Objective-C编程新。 谢谢

Answer 1:

你必须使用一个自定义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]];


Answer 2:

你可以做一个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
}


文章来源: Objective-C/CocoaHttpServer - Trying to do a simple GET request with one parameter