Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff13801b7b | ||
|
|
3951a37c2a | ||
|
|
9ee16508d2 | ||
|
|
0fe3d04e21 | ||
|
|
1f22deee76 | ||
|
|
099fbca53b | ||
|
|
a332765a9b |
@@ -133,7 +133,7 @@ class Unirest
|
||||
* This function is useful for serializing multidimensional arrays, and avoid getting
|
||||
* the "Array to string conversion" notice
|
||||
*/
|
||||
private static function http_build_query_for_curl($arrays, &$new = array(), $prefix = null)
|
||||
public static function http_build_query_for_curl($arrays, &$new = array(), $prefix = null)
|
||||
{
|
||||
if (is_object($arrays)) {
|
||||
$arrays = get_object_vars($arrays);
|
||||
@@ -141,7 +141,7 @@ class Unirest
|
||||
|
||||
foreach ($arrays AS $key => $value) {
|
||||
$k = isset($prefix) ? $prefix . '[' . $key . ']' : $key;
|
||||
if (is_array($value) OR is_object($value)) {
|
||||
if (!$value instanceof \CURLFile AND (is_array($value) OR is_object($value))) {
|
||||
Unirest::http_build_query_for_curl($value, $new, $k);
|
||||
} else {
|
||||
$new[$k] = $value;
|
||||
@@ -316,4 +316,4 @@ function is_hex($hex)
|
||||
return ctype_xdigit($hex);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -113,6 +113,17 @@ class UnirestTest extends UnitTestCase
|
||||
|
||||
$args = $response->body->args;
|
||||
$this->assertEqual("Mark=Hello", $args->name);
|
||||
|
||||
$response = Unirest::get("http://httpbin.org/get", array(
|
||||
"Accept" => "application/json"
|
||||
), array(
|
||||
"name" => "Mark=Hello=John"
|
||||
));
|
||||
|
||||
$this->assertEqual(200, $response->code);
|
||||
|
||||
$args = $response->body->args;
|
||||
$this->assertEqual("Mark=Hello=John", $args->name);
|
||||
}
|
||||
|
||||
public function testPostArray()
|
||||
@@ -192,7 +203,24 @@ class UnirestTest extends UnitTestCase
|
||||
$form = $response->body->form;
|
||||
$this->assertEqual("Mark", $form->name);
|
||||
}
|
||||
|
||||
|
||||
public function testUploadIfFilePartOfData()
|
||||
{
|
||||
$response = Unirest::post("http://httpbin.org/post", array(
|
||||
"Accept" => "application/json"
|
||||
), array(
|
||||
"name" => "Mark",
|
||||
"files[owl.gif]" => Unirest::file(dirname(__FILE__) . "/test_upload.txt")
|
||||
));
|
||||
$this->assertEqual(200, $response->code);
|
||||
|
||||
//$files = $response->body->files;
|
||||
//$this->assertEqual("This is a test", $files->file);
|
||||
|
||||
$form = $response->body->form;
|
||||
$this->assertEqual("Mark", $form->name);
|
||||
}
|
||||
|
||||
public function testPostMultidimensionalArray()
|
||||
{
|
||||
$response = Unirest::post("http://httpbin.org/post", array(
|
||||
@@ -331,5 +359,16 @@ class UnirestTest extends UnitTestCase
|
||||
$headers = $response->body->headers;
|
||||
$this->assertEqual("ciao", $headers->{'User-Agent'});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testHttpBuildQueryWhenCurlFile()
|
||||
{
|
||||
$file = Unirest::file(dirname(__FILE__) . "/test_upload.txt");
|
||||
$body = array(
|
||||
"to" => "mail@mailinator.com",
|
||||
"from" => "mail@mailinator.com",
|
||||
"file" => $file
|
||||
);
|
||||
Unirest::http_build_query_for_curl($body, $postBody);
|
||||
$this->assertEqual($postBody['file'], $file);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user