2

所以我有这个指向 .php 的 url

到目前为止,我设法检索了除了我想要的实际 XML 之外的每一件事。XML 存储在一个名为 _xml 的变量中。

if($this->outMethod=="" || $this->outMethod=="POST") //Default to POST
{
$_POST["_xml"] = $_xml; 
}

所以我已经将 outMethod 设置为 POST,但我不明白如何检索 _xml 中的值。

- (void)grabURLInBackground
{
NSLog(@"grab url in background");
NSURL *url = [NSURL URLWithString:@"xxxxxxxxxxx"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"POST" forKey:@"outMethod"];
[request setPostValue:@"1" forKey:@"Entity_ID"];
[request setDelegate:self];
[request startAsynchronous];
NSLog(@"end of grabUrlInBackgroun");
}

不用担心网址是正确的,我只是不想发布它。

- (void)requestFinished:(ASIHTTPRequest *)request
{
NSLog(@"A");
// Use when fetching text data
NSString *responseString = [request responseString];

// Use when fetching binary data
NSData *responseData = [request responseData];

if(responseString)
{
NSLog(@"responseData is not null");
}

NSLog(@"response string: %@", responseString);

//NSLog(@"%@", responseString);
}

我得到的是请求是好的,但是 responseString 中没有响应。这是因为我的 php 不想以 HTML 格式在屏幕上打印出任何 XML,但它将结果存储在通过 post "$_POST["_xml"] = $_xml 发送的变量 _xml 中

我的问题是,我如何取回那个 xml 变量?ASIHTTPRequest 库中没有可用的方法吗?我使用的是 ASIFormDataRequest 类而不是 ASIHTTPRequest。

4

1 回答 1

1

您必须在 php 文件中打印变量:

if($this->outMethod=="" || $this->outMethod=="POST") //Default to POST
{
    echo $_xml; 
}

HTTPRequest(以及 ASIFormDataRequest)对您在 *.php 文件中声明的任何变量都不感兴趣。它只返回您实际打印的字符串。

于 2011-08-28T13:44:36.217 回答