/* $Id$ */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
#define HTTP_WANT_CURL
#include "php_http.h"
HTTP_EMPTY_ARGS(getResponseBody, 0);
HTTP_EMPTY_ARGS(getResponseCode, 0);
+HTTP_EMPTY_ARGS(getResponseStatus, 0);
HTTP_BEGIN_ARGS(getResponseInfo, 0, 0)
HTTP_ARG_VAL(name, 0)
HTTP_END_ARGS;
HTTP_REQUEST_ME(getResponseHeader, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseCookie, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseCode, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(getResponseStatus, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseBody, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseInfo, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getResponseMessage, ZEND_ACC_PUBLIC)
DCL_PROP_N(PRIVATE, responseData);
DCL_PROP_N(PRIVATE, responseMessage);
DCL_PROP(PRIVATE, long, responseCode, 0);
+ DCL_PROP(PRIVATE, string, responseStatus, "");
DCL_PROP(PRIVATE, long, method, HTTP_GET);
DCL_PROP(PRIVATE, string, url, "");
DCL_PROP(PRIVATE, string, contentType, "");
}
UPD_PROP(long, responseCode, msg->http.info.response.code);
+ UPD_PROP(string, responseStatus, msg->http.info.response.status);
MAKE_STD_ZVAL(resp);
array_init(resp);
zval_ptr_dtor(&resp);
MAKE_STD_ZVAL(message);
- ZVAL_OBJVAL(message, http_message_object_new_ex(http_message_object_ce, msg, NULL));
+ ZVAL_OBJVAL(message, http_message_object_new_ex(http_message_object_ce, msg, NULL), 0);
SET_PROP(responseMessage, message);
zval_ptr_dtor(&message);
RETURN_FALSE;
}
- if (meth >= HTTP_GET && meth <= HTTP_PUT) {
- getObject(http_request_object, obj);
- curl_easy_setopt(obj->request->ch, CURLOPT_CUSTOMREQUEST, NULL);
- }
-
UPD_PROP(long, method, meth);
RETURN_TRUE;
}
{
char *ctype;
int ct_len;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ctype, &ct_len)) {
RETURN_FALSE;
PHP_METHOD(HttpRequest, setQueryData)
{
zval *qdata = NULL;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z!", &qdata)) {
RETURN_FALSE;
}
/* }}} */
+/* {{{ proto string HttpRequest::getResponseStatus()
+ *
+ * Get the response status (i.e. the string after the response code) after the message has been sent.
+ *
+ * Returns a string containing the response status text.
+ */
+PHP_METHOD(HttpRequest, getResponseStatus)
+{
+ NO_ARGS;
+
+ IF_RETVAL_USED {
+ RETURN_PROP(responseStatus);
+ }
+}
+/* }}} */
+
/* {{{ proto mixed HttpRequest::getResponseInfo([string name])
*
* Get response info after the request has been sent.
SET_EH_THROW_HTTP();
message = GET_PROP(responseMessage);
if (Z_TYPE_P(message) == IS_OBJECT) {
- RETVAL_OBJECT(message);
+ RETVAL_OBJECT(message, 1);
} else {
RETVAL_NULL();
}
SET_EH_THROW_HTTP();
if ((msg = http_message_parse(PHPSTR_VAL(&obj->request->conv.request), PHPSTR_LEN(&obj->request->conv.request)))) {
- ZVAL_OBJVAL(return_value, http_message_object_new_ex(http_message_object_ce, msg, NULL));
+ RETVAL_OBJVAL(http_message_object_new_ex(http_message_object_ce, msg, NULL), 0);
}
SET_EH_NORMAL();
}
SET_EH_THROW_HTTP();
if ((msg = http_message_parse(PHPSTR_VAL(&obj->history), PHPSTR_LEN(&obj->history)))) {
- ZVAL_OBJVAL(return_value, http_message_object_new_ex(http_message_object_ce, msg, NULL));
+ RETVAL_OBJVAL(http_message_object_new_ex(http_message_object_ce, msg, NULL), 0);
}
SET_EH_NORMAL();
}
} else if (SUCCESS == http_request_object_requesthandler(obj, getThis())) {
http_request_exec(obj->request);
if (SUCCESS == http_request_object_responsehandler(obj, getThis())) {
- RETVAL_OBJECT(GET_PROP(responseMessage));
+ RETVAL_OBJECT(GET_PROP(responseMessage), 1);
}
}