2013-11-04 3 views
1

지금 코드 스 니펫으로 며칠 동안 고민하고 있습니다. 누군가이 코드 스 니펫을 이해하는 데 도움이 될지 궁금합니다. 나는 무엇이든지, 누군가가 나에게 설명하는 코드를 요구하고 있지 않다이하십시오Qt 코드 이해

void RestClient::_prepareRequest(QNetworkRequest& a_request, const QString& a_uri){ 
     QSslConfiguration config(QSslConfiguration::defaultConfiguration()); 
     config.setProtocol(QSsl::SslV3); 
     config.setSslOption(QSsl::SslOptionDisableServerNameIndication, true); 
     a_request.setSslConfiguration(config); 
     a_request.setRawHeader("Accept", "application/xml"); 
     a_request.setRawHeader("Content-Type", "application/x-www-form-urlencoded"); 
     QByteArray l_api_key; l_api_key.append(toQString(m_api_key)); 
     QByteArray l_request_hash; 
    l_request_hash.append(toQString(_buildRequestHash(toStlString(a_uri)))); 
     a_request.setRawHeader("EMApikey", l_api_key); 
     a_request.setRawHeader("EMRequestHash", l_request_hash); 


     a_request.setUrl(QUrl(a_uri)); 
    } 
+2

a_uri가 URL 인 것으로 보입니다. 나머지는 http (s) 요청을 어셈블합니다. 어떤 비트로 당신은 특히 어려움을 겪고 있습니까? –

+0

Osterfeld 선생님 께 감사드립니다. 나는 setRawHeader 메쏘드로 무엇을 위해 고민하고 있는가? 나는 대답을 찾을 수 없었다. 또한 왜 Http 요청이 그렇게 긴지. 이 요청보다 짧은 요청을 보았습니다. 모든 답변을 미리 보내 주셔서 감사합니다. –

답변

2

그래서 당신이 알아 낸 두를 복용하는 기능이있다 (URI를 서비스에 대한 전체 URL로 표시) 매개 변수, QNetworkRequest에 대한 참조 및 액세스하려는 URI에 대한 QString에 대한 상수 참조 다음 줄은 QSslConfiguration을 설정하여 Qt의 네트워크 액세스를위한 기본 SSL 구성을 얻고이를 config에 저장합니다. 그런 다음 QSsl 옵션을 설정 한 다음 a_request의 SSL 설정을 방금 설정 한 config에서 제공하도록 설정합니다.

는 다음 최대는 요청에 대한 일부 HTTP 헤더를 설정하고, 그래서이 합리적으로 표준화 된, 그래서이 경우 xml (Accept header documentation)는 서버로부터의 응답을 허용 한 정보의 어떤 종류 Accept 참조. Content-type은 요청 본문에서 보내는 데이터의 종류를 수신 서버에 알려줍니다.

최종 단계에서는 응용 프로그램 API 액세스 키용 비표준 HTTP 헤더를 설정하고, 원래 통과 한 URL을 설정하고 기능이 완료된 후에야합니다. 그런 다음 QNetworkRequestQNetworkAccessManager과 함께 사용하여 인코딩 된 API 키와 함께 서버에 요청을 보내면 대가로 XML 응답을받습니다.

+0

답변을 드릴 시간을 주셔서 감사합니다. 훌륭한 설명입니다! 대단히 감사합니다! –

+0

내게 호기심이 없다면, 당신이 ios 용으로 objective-c로 코딩했는지 물어볼 수 있습니까? –

+0

그래, 약간의 Objective-C도한다. –