- if ((!qdata) || Z_TYPE_P(qdata) == IS_NULL) {
- zend_update_property_stringl(php_http_client_request_class_entry, getThis(), ZEND_STRL("query"), "", 0 TSRMLS_CC);
- } else if ((Z_TYPE_P(qdata) == IS_ARRAY) || (Z_TYPE_P(qdata) == IS_OBJECT)) {
- char *query_data_str = NULL;
- size_t query_data_len;
-
- if (SUCCESS == php_http_url_encode_hash(HASH_OF(qdata), NULL, 0, &query_data_str, &query_data_len TSRMLS_CC)) {
- zend_update_property_stringl(php_http_client_request_class_entry, getThis(), ZEND_STRL("query"), query_data_str, query_data_len TSRMLS_CC);
- efree(query_data_str);
- }
+ php_http_message_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ php_url *old_url = NULL, new_url = {NULL};
+ char empty[] = "";
+
+ if (qdata) {
+ zval arr, str;
+
+ INIT_PZVAL(&arr);
+ array_init(&arr);
+ INIT_PZVAL(&str);
+ ZVAL_NULL(&str);
+
+ php_http_querystring_update(&arr, qdata, &str TSRMLS_CC);
+ new_url.query = Z_STRVAL(str);
+ zval_dtor(&arr);