2016-08-19 1 views
1

만들 때, 로컬 서버에 대한 사용자 로그인을 시뮬레이트하는 HTTP 요청을 초기화했습니다. 로그인 성공 여부를 나타내는 JSON 문자열이 반환 될 것으로 예상됩니다. 여기에 내가 작성한 코드가있다. CPPRest SDK가 CPPRest SDK (2.8) 테스트 중에 서버에 대한 HTTP 요청을

void printJSON(json::value v) 
{ 
if (!v.is_null()){ 
    // Loop over each element in the object 
    for (auto iter = v.as_object().cbegin(); iter != v.as_object().cend(); ++iter){ 
     const string &key = iter->first; 
     const json::value &value = iter->second; 

     if (value.is_object() || value.is_array()){ 
      if(key.size() != 0){ 
       std::wcout << "Parent: " << key.c_str() << std::endl; 
      } 
      printJSON(value); 
      if(key.size() != 0){ 
       std::wcout << "End of Parent: " << key.c_str() << std::endl; 
      } 
     }else{ 
      std::wcout << "Key: " << key.c_str() << ", Value: " << value.to_string().c_str() << std::endl; 
     } 
    } 
} 
} 

void login(){ 
http_client client("http://localhost:8080/user"); 

http_request request(methods::POST); 
request.headers().add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
request.headers().add("Content-Length", "100"); 
request.headers().add("Host", "testhost.com"); 
request.headers().add("X-Requested-With", "XMLHttpRequest"); 
request.set_body("u_id=test_admin&pwd=123456789"); 

pplx::task<void> task = client.request(request) 
     .then([](http_response response)-> pplx::task<json::value>{ 
      if(response.status_code() == status_codes::OK){ 
       return response.extract_json(); 
      } else { 
       return pplx::task_from_result(json::value()); 
      };}) 
     .then([](pplx::task<json::value> previousTask){ 
      try{ 
       const json::value & v = previousTask.get(); 
       printJSON(v); 
      } catch(const http_exception &e){ 
       std::cout<<e.what()<<std::endl; 
      } 
     }); 
try{ 
    task.wait(); 
} catch(std::exception &e){ 
    std::cout<<e.what()<<std::endl; 
} 
} 

나는이 코드를 실행

, 아무것도는 요청이 결코 JSP를 사용하여 테스트 된 서버에 도달하지 것 같다, 그래서 내가 뭔가 내 코드에서 잘못된 확신, 일어나지 않았다. 도와주세요, 감사합니다

답변

1

막연합니다. 요청이 서버에 도달하지 않는다고 말하는 경우이 코드를 실행 한 시점에 리스너에 문제가있을 수 있습니다.

요청 형식이 정확하고 실행 중이면 json에 본문 (u_id, pwd)을 래핑하고 작동하는지보십시오.

코드 줄을 디버깅하거나 공유하면 서버 코드를 이해하는 것이 도움이 될 것입니다.

관련 문제