0

我正在做一个 ipad 应用程序。实际上,我正在将一个 java applet 应用程序转换为 ipad 版本。我有很多问题。

在原始的java小程序代码中,有一些http POST请求,它会从java服务器接收一些数据。

        httpCon=(HttpURLConnection) cmdURL.openConnection();
        httpCon.setRequestMethod("POST");
        httpCon.addRequestProperty("cmd", cmd);
        httpCon.addRequestProperty("arg", arg);
        httpCon.setDoInput(true);

然后,接收数据:

        inputStream=httpCon.getInputStream();
        ObjectInputStream ois=new ObjectInputStream(inputStream);
        Document doc=(Document)ois.readObject();
        rData[2]=doc;

现在,我想使用objective-c做同样的事情:

NSURL * url = [NSURL URLWithString:@"http://192.168.1.4:801/cmd"];
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%@",cmd] forHTTPHeaderField:@"cmd"];
[request setValue:[NSString stringWithFormat:@"%@",arg] forHTTPHeaderField:@"arg"];

[NSURLConnection connectionWithRequest:request delegate:self];

_responseData是接收到的数据:

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
        _responseData = [NSMutableData data];}

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
        [_responseData appendData:data];
    }

那么,接下来我该怎么办?并且Documentjava小程序代码中有一个类,objective-c中有没有类似的类?

=======更新=======

java服务器返回xml作为Document实例。可以直接_responseData作为xml文件使用吗?或者我必须在处理之前做额外的步骤_responseData

4

1 回答 1

0

你不能在 objC 中使用 java 对象流。它旨在发送java对象

...如果您对 objectStream 使用的协议进行逆向工程,那么理论上您可以,但这是大量的工作和维护地狱(我猜) - 我会研究使用通用交换格式.. json 或 xml 可能!

编辑后:我不知道 objectstream 发送的 xml,但理论上你可以解析它并用它设置一个自定义的 objC 类。
我也不知道 Document 类是什么或做什么或它来自哪里,所以我不能说 Java 中是否有等价物。我倾向于不。

于 2012-12-11T01:05:30.940 回答