我试图用“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