使用php通过NSURLConnection将数据从服务器发送到iPhone

使用php通过NSURLConnection将数据从服务器发送到iPhone,php,objective-c,post,nsurlconnection,echo,Php,Objective C,Post,Nsurlconnection,Echo,我有一台运行sql server数据库的服务器,我可以将数据从它发送到我的iPhone。以下是我使用的代码: 服务器上的PHP <?php $headers = getallheaders(); $length = $headers['Content-Length']; $input = fopen("php://input", "rb"); $json = json_decode(fread($input, $length)); fclose($input); $search = $js

我有一台运行sql server数据库的服务器,我可以将数据从它发送到我的iPhone。以下是我使用的代码:

服务器上的PHP

<?php
$headers = getallheaders();
$length = $headers['Content-Length'];
$input = fopen("php://input", "rb");
$json = json_decode(fread($input, $length));
fclose($input);
$search = $json->{'search'};
$value = $json->{'value'};

$serverName = "SOMEONE-PC\SQLEXPRESS";
$connectionInfo = array( "Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$sql = "SELECT firstname, lastname
FROM testtable
WHERE $search='$value'";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
 die( print_r( sqlsrv_errors(), true));
}

while( $row = sqlsrv_fetch_array( $stmt ) ) {
    $arr = array('firstname' => $row['firstname'], 'lastname' => $row['lastname']);
echo json_encode($arr);
}

?>
这给了我输出:

2013-11-12 22:58:03.743 httppostrequests[25708:70b] 1

2013-11-12 22:58:03.745 httppostrequests[25708:70b] {"firstname":"Thomas    ","lastname":"mylastname"}{"firstname":"person    ","lastname":"mylastname"}
我想知道是否有可能更改服务器代码,使DidReceiveData多次被调用,从而使数据以位的形式发送,而不是以一个大文本的形式发送。我只是好奇它是如何工作的,因为当我向“”发出一个简单的请求时,DidReceiveData会被调用四次。

在下面的文档中提到了作为连接发送的DidReceiveData
以增量方式加载数据。它还说
此方法为异步委托提供了检索加载数据的唯一方法。学员有责任在交付时保留或复制此数据。
。本质上,这意味着每当有数据块可用时,就会调用
direceivedata
,google get之所以会被分块,很可能是因为数据块的大小超过了google的响应,而您的数据却没有

编辑:我不确定,但我认为使用会影响这一点。所以,如果你设置了一个较低的块大小,它就有可能按照你想要的方式工作

2013-11-12 22:58:03.743 httppostrequests[25708:70b] 1

2013-11-12 22:58:03.745 httppostrequests[25708:70b] {"firstname":"Thomas    ","lastname":"mylastname"}{"firstname":"person    ","lastname":"mylastname"}