void send(const char* buffer = NULL){
		if(m_request != NULL){
			if(NULL != buffer){
				m_request->setRequestData(buffer, sizeof buffer);
			}
			m_request->setHeaders(m_headers);
			CCHttpClient::getInstance()->send(m_request);
			CC_SAFE_RELEASE_NULL(m_request);
			m_headers.clear();
		}
	};
Exemplo n.º 2
0
void GameState::sendPostHttp(CCObject* sender)
{
	CCHttpRequest* request = new CCHttpRequest();
	request->setUrl("http://deploydjango1.herokuapp.com");

	request->setRequestType(CCHttpRequest::kHttpPost);
	std::vector<std::string> headers;
	
	headers.push_back("Content-Type: application/json; charset=utf-8");
	request->setHeaders(headers);
	
	const char* postData = "text=12";
	request->setRequestData(postData,strlen(postData));
	request->setTag("text");

	CCHttpClient::getInstance()->send(request); //보내고 나서
	request->setResponseCallback(this,callfuncND_selector(GameState::onHttpRequestCompleted));//받습니다
	
	request->release();
}
Exemplo n.º 3
0
void HttpClientTest::onMenuPutTestClicked(CCObject *sender)
{
    // test 1
    {
        CCHttpRequest* request = new CCHttpRequest();
        request->setUrl("http://httpbin.org/put");
        request->setRequestType(CCHttpRequest::kHttpPut);
        request->setResponseCallback(this, httpresponse_selector(HttpClientTest::onHttpRequestCompleted));

        // write the post data
        const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest";
        request->setRequestData(postData, strlen(postData));

        request->setTag("PUT test1");
        CCHttpClient::getInstance()->send(request);
        request->release();
    }

    // test 2: set Content-Type
    {
        CCHttpRequest* request = new CCHttpRequest();
        request->setUrl("http://httpbin.org/put");
        request->setRequestType(CCHttpRequest::kHttpPut);
        std::vector<std::string> headers;
        headers.push_back("Content-Type: application/json; charset=utf-8");
        request->setHeaders(headers);
        request->setResponseCallback(this, httpresponse_selector(HttpClientTest::onHttpRequestCompleted));

        // write the post data
        const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest";
        request->setRequestData(postData, strlen(postData));

        request->setTag("PUT test2");
        CCHttpClient::getInstance()->send(request);
        request->release();
    }

    // waiting
    m_labelStatusCode->setString("waiting...");
}
Exemplo n.º 4
0
/// communication
ParseError* ParseManager::request(CCHttpRequest::HttpRequestType op, 
								  const std::string &url, 
								  const char* buffer,
								  size_t size,
								  CCObject *receiver, 
								  SEL_CallFuncND selector,
								  const char* contentType,
								  bool setMasterKey,
								  void* param)
{
	ParseError* error = NULL;

	CCHttpRequest* request = new CCHttpRequest();

	std::vector<std::string> headers;

	request->setRequestType(op);

	std::string fullUrl;
	if (strncmp(url.c_str(), "http", 4) != 0)
	{
		fullUrl = "https://api.parse.com" + url;
	}
	else
	{
		fullUrl = url;
	}

	request->setUrl(fullUrl.c_str());

	request->setResponseCallback(receiver, selector);

	request->setUserData(param);

	CCHttpClient* client = CCHttpClient::getInstance();


	if (contentType)
	{
		headers.push_back(contentType);
	}
	switch(op)
	{
		case CCHttpRequest::kHttpGet:
			if (size > 0)
			{
				char* condition = curl_escape(buffer, size);
				request->setUrl((fullUrl + "?" + condition).c_str());
			}
			break;
		case CCHttpRequest::kHttpPost:
			if (contentType == 0)
			{
				headers.push_back("Content-Type: application/json");
			}
			if (size > 0)
			{
				request->setRequestData(buffer, size);
			}
			break;
		case CCHttpRequest::kHttpPut:
			if (contentType == 0)
			{
				headers.push_back("Content-Type: application/json");
			}
			if (size > 0)
			{
				request->setRequestData(buffer, size);
			}
			break;
		case CCHttpRequest::kHttpDelete:
			break;
	}

	headers.push_back(std::string("X-Parse-Application-Id: ") + this->_applicationId);
	if (setMasterKey)
	{
		headers.push_back(std::string("X-Parse-Master-Key: ") + this->_masterKey);
	}
	else
	{
		headers.push_back(std::string("X-Parse-REST-API-Key: ") + this->_apiKey);
	}
	request->setHeaders(headers);

	client->send(request);

	request->release();

	return error;
}