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