2013-03-25 5 views
3

Qt에서 REST API를 사용하여 Parse.com에서 데이터를 검색하는 기본 응용 프로그램을 개발 중입니다. 몇 가지 클래스 참조와 cURL 설명서를 살펴 보았지만 요청 매개 변수를 설정하는 방법은 아직 명확하지 않습니다. 예를 들어, 사용자를 인증하고 싶습니다. 다음은 구문 분석에 의해 제공되는 컬 예이다 : 나는 url 및이 매개 변수 없었다,하지만 난 같은를 달성하기 위해 무엇을 사용해야 할 때 잘 작동이Qt를 사용하여 http get 요청 매개 변수 설정

QUrl url("https://api.parse.com/1/login"); 
QNetworkRequest request(url); 

request.setRawHeader("X-Parse-Application-Id", "myappid"); 
request.setRawHeader("X-Parse-REST-API-Key", "myapikey"); 

nam->get(request); 

같은 헤더를 설정

curl -X GET \ 
-H "X-Parse-Application-Id: myappid" \ 
-H "X-Parse-REST-API-Key: myapikey" \ 
-G \ 
--data-urlencode 'username=test' \ 
--data-urlencode 'password=test' \ 
https://api.parse.com/1/login 

curl은 --data-urlencode 스위치를 사용합니까? 시간에 대한

덕분에 내가 QUrl::addQueryItem() 생각

답변

6

찾고있는 무엇, QUrl :: addQueryItem는() qt5에서 사용되지 않는하지만 거기에서 시작 나는 QUrlQuery 클래스를 발견 어떤는 addQueryItem() 메소드를 가지고 있으며, 지금과 같이 보이는 잘 작동되도록) QUrl의 setQuery (허용 방법이다 쿼리 문자열을 생성 할 수 있습니다 :

QUrl url("https://api.parse.com/1/login"); 
QUrlQuery query; 

query.addQueryItem("username", "test"); 
query.addQueryItem("password", "test"); 

url.setQuery(query.query()); 

QNetworkRequest request(url); 

request.setRawHeader("X-Parse-Application-Id", "myappid"); 
request.setRawHeader("X-Parse-REST-API-Key", "myapikey"); 

nam->get(request); 

팁 크리스 주셔서 감사.

3

당신이 불행하게도

QUrl url("https://api.parse.com/1/login"); 
url.addQueryItem("username", "test"); 
url.addQueryItem("password", "test"); 
... 
2

QtCUrl을 사용해보세요. 당신이 컬에 익숙하다면 쉽습니다.

QtCUrl cUrl; 

QUrl url("https://api.parse.com/1/login"); 
url.addEncodedQueryItem("username", "test"); 
url.addEncodedQueryItem("password", "test"); 

QtCUrl::Options opt; 
opt[CURLOPT_URL] = url; 
QStringList headers; 
headers 
    << "X-Parse-Application-Id: myappid" 
    << "X-Parse-REST-API-Key: myapikey" 

opt[CURLOPT_HTTPHEADER] = headers; 
QString result = cUrl.exec(opt);