HTTP_ARG_VAL(name, 0)
HTTP_END_ARGS;
-HTTP_EMPTY_ARGS(getResponseMessage, 1);
-HTTP_EMPTY_ARGS(getRequestMessage, 1);
-HTTP_EMPTY_ARGS(getHistory, 1);
+HTTP_EMPTY_ARGS(getResponseMessage, 0);
+HTTP_EMPTY_ARGS(getRawResponseMessage, 0);
+HTTP_EMPTY_ARGS(getRequestMessage, 0);
+HTTP_EMPTY_ARGS(getRawRequestMessage, 0);
+HTTP_EMPTY_ARGS(getHistory, 0);
HTTP_EMPTY_ARGS(clearHistory, 0);
-HTTP_EMPTY_ARGS(send, 1);
+HTTP_EMPTY_ARGS(send, 0);
HTTP_BEGIN_ARGS(get, 0, 1)
HTTP_ARG_VAL(url, 0)
HTTP_REQUEST_ME(getResponseBody, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseInfo, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseMessage, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(getRawResponseMessage, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getRequestMessage, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(getRawRequestMessage, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getHistory, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(clearHistory, ZEND_ACC_PUBLIC)
DCL_PROP_N(PROTECTED, options);
DCL_PROP_N(PROTECTED, responseInfo);
DCL_PROP_N(PROTECTED, responseData);
- DCL_PROP_N(PROTECTED, responseCode);
+ DCL_PROP(PROTECTED, long, responseCode, 0);
DCL_PROP_N(PROTECTED, responseMessage);
DCL_PROP_N(PROTECTED, postFields);
DCL_PROP_N(PROTECTED, postFiles);
HTTP_CHECK_CURL_INIT(obj->request->ch, curl_easy_init(), return FAILURE);
URL = convert_to_type_ex(IS_STRING, GET_PROP(obj, url), &URL_p);
- obj->request->url = http_absolute_uri_ex(Z_STRVAL_P(URL), Z_STRLEN_P(URL), NULL, 0, NULL, 0, 0);
- if (URL_p) {
- zval_ptr_dtor(&URL_p);
- }
-
- if (!obj->request->url) {
- return FAILURE;
- }
+ obj->request->url = http_absolute_url(Z_STRVAL_P(URL));
+ if (URL_p) zval_ptr_dtor(&URL_p);
switch (obj->request->meth = Z_LVAL_P(convert_to_type_ex(IS_LONG, GET_PROP(obj, method), &meth_p)))
{
if (Z_STRLEN_P(qdata)) {
if (!strchr(obj->request->url, '?')) {
- strlcat(obj->request->url, "?", HTTP_URI_MAXLEN);
+ strlcat(obj->request->url, "?", HTTP_URL_MAXLEN);
} else {
- strlcat(obj->request->url, "&", HTTP_URI_MAXLEN);
+ strlcat(obj->request->url, "&", HTTP_URL_MAXLEN);
}
- strlcat(obj->request->url, Z_STRVAL_P(qdata), HTTP_URI_MAXLEN);
+ strlcat(obj->request->url, Z_STRVAL_P(qdata), HTTP_URL_MAXLEN);
}
http_request_prepare(obj->request, Z_ARRVAL_P(options));
UPD_PROP(obj, long, responseCode, msg->http.info.response.code);
- MAKE_STD_ZVAL(headers)
+ MAKE_STD_ZVAL(headers);
array_init(headers);
zend_hash_copy(Z_ARRVAL_P(headers), &msg->hdrs, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *));
}
/* }}} */
+/* {{{ proto string HttpRequest::getRawRequestMessage()
+ *
+ * Get sent HTTP message.
+ *
+ * Returns an HttpMessage in a form of a string
+ *
+ */
+PHP_METHOD(HttpRequest, getRawRequestMessage)
+{
+ NO_ARGS;
+
+ IF_RETVAL_USED {
+ getObject(http_request_object, obj);
+
+ RETURN_PHPSTR_DUP(&obj->request->conv.request);
+ }
+}
+/* }}} */
+
+/* {{{ proto string HttpRequest::getRawResponseMessage()
+ *
+ * Get the entire HTTP response.
+ *
+ * Returns the complete web server response, including the headers in a form of a string.
+ *
+ */
+PHP_METHOD(HttpRequest, getRawResponseMessage)
+{
+ NO_ARGS;
+
+ IF_RETVAL_USED {
+ getObject(http_request_object, obj);
+
+ RETURN_PHPSTR_DUP(&obj->request->conv.response);
+ }
+}
+/* }}} */
+
/* {{{ proto HttpMessage HttpRequest::getHistory()
*
* Get all sent requests and received responses as an HttpMessage object.