2017-12-03 1 views
-1

저는 프로그래밍 초보자이며 최근에 http uri를 사용하여 데이터를 얻은 다음 SSIS에서 C#을 사용하여 스트림에서 json 문자열을 구문 분석하고 SQL Server에 데이터를로드 할 수있었습니다 데이터 베이스.C#을 사용하여 데이터를 가져 오는 JSON API 쿼리

다음은

System.Uri uri = new Uri("API URL"); 
WebRequest webRequest = HttpWebRequest.Create(uri); 
HttpWebRequest httpWebRequest = (HttpWebRequest)webRequest; 
NetworkCredential networkCredential = new NetworkCredential("LOGIN","Password"); 
credentialCache.Add(uri,"Basic",networkCredential); 
WebResponse webResponse = webRequest.GetResponse(); 
... 

그러나 나는 설정에 POST 방식을 사용하는 다른 API에 대한 연결의 동일한 유형을 시도하고 .. 내가 사용하는 샘플 코드입니다.

쿼리에 유사합니다 .. URL + JSON의 API 쿼리 ..

{"JSON" : { 
"name": "Dataset", 
"ColumnSelect": ["Name","Age","Email"], 
"sort":["Name"], 
"filterList": [ 
{ 
"Attribute": "Age", 
"Operator": ">", 
"Value": ["25"] 
}],"returnObject" 

나는이가 HTTP와 같은 SQL로 데이터로드 데이터를 쿼리하는 방법을 잘 모르겠습니다과 같이 보입니다 의뢰. 누군가가 이것을 달성하기 위해 올바른 방향으로 나에게 조언을 해줄 수 있습니까? 모든 도움에 감사드립니다.

답변

0

시나리오가 무엇인지 100 % 확신 할 수 없지만 일부 서버에서 데이터를 가져와 데이터베이스에 데이터를 저장하려고하는 것으로 알고 있습니다.

HTTP GET을 사용하여 달성했지만 이번에는 POST로해야합니다.

GET과 POST의 기본적인 차이점은 GET이 기존 데이터를 쿼리하는 데 사용되지만 POST에서는 서버에 무엇인가를 전달하는 것입니다.

이 쉽게 수행 할 수 있습니다

  1. Prepare your POST request

    , 당신은 당신의 매개 변수에 대한 내용이 필요합니다 : (https://www.w3schools.com/tags/ref_httpmethods.asp 물론이 링크를 확인, 더 차이가있다).
  2. 하여 JSON을 게시에서 들어오는 응답 문자열 클래스를 만들기 : 당신이 (JSON도 캐릭터 라인) 응답 문자열이있을 때

    public class JSON 
    { 
        public string name { get; set; } 
    
        public string[] ColumnSelect { get; set; } 
    
        public string[] sort { get; set; } 
    
        public filterList filterList { get; set; } 
    } 
    
    public class filterList 
    { 
        public string Attribute { get; set; } 
    
        public string Operator { get; set; } 
    
        public string[] Value { get; set; } 
    } 
    
  3. 이 JSON.NET를 통해 직렬화.

  4. 이제 .NET 개체로 설정했습니다. Entity Framework를 사용하여 데이터베이스에 커밋 할 수 있습니다.

단계에 대한 조언이 필요한 경우 내 답변을 편집 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. "하지만 POST에서는 서버에 뭔가를 제공하고 있습니다." URL을 통해이 쿼리를 보내고 응답을 받아야한다는 뜻입니까? 죄송합니다 여기 조금 천천히. 논리를 이해하고 내 요구 사항을 충족 시키려고 시도 할 수있는 예를 얻을 수 있습니까? 감사합니다. – Nat85

+0

제가 제공 한 링크를 확인하십시오. "POST에서는 서버에 무언가를 전달 중입니다."즉, 요청과 함께 게시물 데이터를 보내야합니다. 'data'와'stream.Write (data, 0, data.Length);'행을 확인하십시오. 위의 답변으로 도움이 되었다면 답을 표시하십시오. – Mithgroth

관련 문제