C #에서 문자열을 HTTP 응답으로 어떻게 변환합니까?

RDRick
{
    "AdditionalProcessCardSwipeResponseData": null,
    "CustomerTransactionID": "",
    "ProcessCardSwipeOutputs": [
        {
            "AdditionalProcessCardSwipeResponseData": null,
            "CardSwipeOutput": {
                "AdditionalOutputData": [
                    {
                        "key": "CardType",
                        "value": "VISA"
                    }
                ],
                "CardID": "abcdefghijk",
                "IsReplay": false,
                "MagnePrintScore": 0.12345,
                "PanLast4": "1234"
            },
            "CustomerTransactionID": "",
            "DecryptForwardFaultException": null,
            "MagTranID": "2c3b08e9-b628-4f3c-a8ad-1ac1d57c1698",
            "PayloadResponse": "HTTP\/1.1 200 OKPragma: no-cache\u000aX-OPNET-Transaction-Trace: a2_8bfb4474-c9fb-4257-b914-8411770544e4-22192-26834262\u000aAccess-Control-Allow-Credentials: true\u000aAccess-Control-Allow-Headers: x-requested-with,cache-control,content-type,origin,method,SOAPAction\u000aAccess-Control-Allow-Methods: PUT,OPTIONS,POST,GET\u000aAccess-Control-Allow-Origin: *\u000aStrict-Transport-Security: max-age=31536000\u000aX-Cnection: close\u000aContent-Length: 328\u000aCache-Control: no-store\u000aContent-Type: application\/json; charset=utf-8\u000aDate: Thu, 26 Dec 2019 16:05:35 GMT\u000a\u000a&{\"messages\":{\"resultCode\":\"Error\",\"message\":[{\"code\":\"E00003\",\"text\":\"The 'AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd:customerProfileId' element is invalid - The value 'customer_profile_id' is invalid according to its datatype 'AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd:numericString' - The Pattern constraint failed.\"}]}}",
            "PayloadToken": "ADFASDFASDFASDFASDFASFADSFF",
            "TransactionUTCTimestamp": "2019-12-26 16:05:35Z"
        }
    ]
}

"PayloadResponse"에 대해 반환 된 문자열을 HTTPResponse로 어떻게 변환합니까? 다음을 시도했지만 응답 본문을 검색 할 수 없습니다.

var response = JObject.Parse(await httpResponseMessage.Content.ReadAsStringAsync());
var payloadResponse = response["ProcessCardSwipeOutputs"][0]["PayloadResponse"];


var msg = new HttpResponseMessage
{
   Content = new StringContent(payloadResponse.ToString(), Encoding.UTF8, "application/json")
};

이것은 응답 본문을 깔끔하게 구문 분석 할 수 있도록 HttpResponse로 변환하려는 PayloadResponse의 내용입니다.

HTTP/1.1 200 OKPragma: no-cache
X-OPNET-Transaction-Trace: a2_cadac737-0b60-45f5-9d5a-4d540c0975a0-7760-47076038
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: x-requested-with,cache-control,content-type,origin,method,SOAPAction
Access-Control-Allow-Methods: PUT,OPTIONS,POST,GET
Access-Control-Allow-Origin: *
Strict-Transport-Security: max-age=31536000
X-Cnection: close
Content-Length: 530
Cache-Control: no-store
Content-Type: application/json; charset=utf-8
Date: Thu,
26 Dec 2019 21: 46: 56 GMT

&{
    "customerProfileId": "45345345345",
    "customerPaymentProfileId": "123123123",
    "validationDirectResponse": "1,1,1,(TESTMODE) This transaction has been approved.,000000,P,0,none,Test transaction for ValidateCustomerPaymentProfile.,1.00,CC,auth_only,none,John,Doe,,2020 Vision St,Somewhere,CA,90028,USA,,,[email protected],,,,,,,,,0.00,0.00,0.00,FALSE,none,,,,,,,,,,,,,,XXXX1234,Visa,,,,,,,,,,,,,,,,,",
    "messages": {
        "resultCode": "Error",
        "message": [
            {
                "code": "E00039",
                "text": "A duplicate customer payment profile already exists."
            }
        ]
    }
}
크로우 코더

내가 올바르게 이해한다면 " 깨끗한 방식으로 응답 본문을 구문 분석 "하고 싶을뿐입니다 .

당신은 HttpResponseMessage그것이 당신을 위해 모든 것을 줄 것이라고 생각하기 때문에 이것을 변환하려고 합니다. 이것은 혼란스럽고 응답을 만들고 전달하려는 것처럼 들리지만 실제로 원하는 것은 페이로드를 사용 가능한 형식으로 구문 분석하는 것입니다.

틀 렸으면 말해줘.

해당 페이로드를 구문 분석하려면 개행 문자 ( /u000a)에서 해당 문자열을 분할 하고 관련없는 항목을 제거 &하고 json을 구문 분석 할 수 있습니다.

var splitResponse = payloadResponse.ToString().Split(new char[] { '\u000a' });

string body = splitResponse.Last().Substring(1);

JObject job = JObject.Parse(body);

// example
Console.WriteLine(job["messages"]["message"][0]["text"]);

오류 메시지이기 때문에이 json을 역 직렬화 할 수있는 클래스를 제공하지 않았으며 항상 오류를 처리하지는 않을 것이라고 가정합니다. 성공 응답은 아마도 다른 스키마 일 것입니다. 나는 당신이 제공 한 정보에서 이것에 대한 클래스를 디자인하는 방법을 알 수 없지만 아마도에서 작업하는 JObject것이 적절할 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ISO-8859-7 문자열을 C ++에서 UTF-8로 "변환"하려면 어떻게해야합니까?

분류에서Dev

C ++에서 문자열의 문자 크기를 사용하여 문자열을 Char 배열로 변환하려면 어떻게해야합니까?

분류에서Dev

C #에서 여러 유형의 문자열을 어떻게 변환합니까?

분류에서Dev

awk에서 배열을 문자열로 어떻게 변환합니까?

분류에서Dev

c에서 문자 위치로 문자열을 어떻게 분할합니까?

분류에서Dev

C ++ 코드에서 cmake 변수를 문자열로 어떻게 변환합니까?

분류에서Dev

C #에서 workweek double을 DateTime으로 어떻게 변환합니까?

분류에서Dev

다음을 VB에서 C # .net으로 어떻게 변환합니까?

분류에서Dev

파이썬에서 문자열을 코드로 어떻게 변환합니까?

분류에서Dev

이 문자열을 파이썬에서 dict로 어떻게 변환합니까?

분류에서Dev

C #에서 16 진수 ASCII 문자열이라고 생각하는 것을 읽을 수있는 것으로 어떻게 변환합니까?

분류에서Dev

curl을 http 요청으로 변환하고 C #에서 응답 받기

분류에서Dev

파이썬에서 문자열을 문자열 리터럴로 어떻게 변환합니까?

분류에서Dev

Google Apps Script에서 문서를 문자열로 어떻게 변환합니까?

분류에서Dev

PHP SDK의 gen_results_table에서 반환 된 문자열을 어떻게 Javascript 배열로 변환합니까?

분류에서Dev

JTextfield의 입력을 문자열에서 문자로 어떻게 변환합니까?

분류에서Dev

부호없는 문자 배열을 C의 문자열로 어떻게 변환합니까?

분류에서Dev

시간 시간을 문자열에서 분으로 어떻게 변환합니까?

분류에서Dev

각 인덱스의 문자를 알고 있으면 문자열을 어떻게 생성합니까 (C ++에서)

분류에서Dev

& alloc :: string :: String에서 문자열 리터럴로 어떻게 변환합니까?

분류에서Dev

mySQL에서 날짜를 문자열로 어떻게 변환합니까?

분류에서Dev

bash에서 인수를 문자열로 어떻게 변환합니까?

분류에서Dev

문자열을 사전으로 어떻게 변환합니까?

분류에서Dev

Delphi에서 바이트 배열을 문자열로 어떻게 변환합니까?

분류에서Dev

C ++에서 char로 문자열 char을 어떻게 읽습니까?

분류에서Dev

C ++에서 char를 int로 어떻게 변환합니까?

분류에서Dev

부울이있는 배열을 Arduino / C / C ++에서 바이트로 어떻게 변환합니까?

분류에서Dev

Windows 범용 응용 프로그램 C #에서 일부 매개 변수와 함께 json 문자열을 게시하려면 어떻게해야합니까?

분류에서Dev

Java 컬렉션에서 json 응답 인이 문자열을 어떻게 변환 할 수 있습니까?

Related 관련 기사

  1. 1

    ISO-8859-7 문자열을 C ++에서 UTF-8로 "변환"하려면 어떻게해야합니까?

  2. 2

    C ++에서 문자열의 문자 크기를 사용하여 문자열을 Char 배열로 변환하려면 어떻게해야합니까?

  3. 3

    C #에서 여러 유형의 문자열을 어떻게 변환합니까?

  4. 4

    awk에서 배열을 문자열로 어떻게 변환합니까?

  5. 5

    c에서 문자 위치로 문자열을 어떻게 분할합니까?

  6. 6

    C ++ 코드에서 cmake 변수를 문자열로 어떻게 변환합니까?

  7. 7

    C #에서 workweek double을 DateTime으로 어떻게 변환합니까?

  8. 8

    다음을 VB에서 C # .net으로 어떻게 변환합니까?

  9. 9

    파이썬에서 문자열을 코드로 어떻게 변환합니까?

  10. 10

    이 문자열을 파이썬에서 dict로 어떻게 변환합니까?

  11. 11

    C #에서 16 진수 ASCII 문자열이라고 생각하는 것을 읽을 수있는 것으로 어떻게 변환합니까?

  12. 12

    curl을 http 요청으로 변환하고 C #에서 응답 받기

  13. 13

    파이썬에서 문자열을 문자열 리터럴로 어떻게 변환합니까?

  14. 14

    Google Apps Script에서 문서를 문자열로 어떻게 변환합니까?

  15. 15

    PHP SDK의 gen_results_table에서 반환 된 문자열을 어떻게 Javascript 배열로 변환합니까?

  16. 16

    JTextfield의 입력을 문자열에서 문자로 어떻게 변환합니까?

  17. 17

    부호없는 문자 배열을 C의 문자열로 어떻게 변환합니까?

  18. 18

    시간 시간을 문자열에서 분으로 어떻게 변환합니까?

  19. 19

    각 인덱스의 문자를 알고 있으면 문자열을 어떻게 생성합니까 (C ++에서)

  20. 20

    & alloc :: string :: String에서 문자열 리터럴로 어떻게 변환합니까?

  21. 21

    mySQL에서 날짜를 문자열로 어떻게 변환합니까?

  22. 22

    bash에서 인수를 문자열로 어떻게 변환합니까?

  23. 23

    문자열을 사전으로 어떻게 변환합니까?

  24. 24

    Delphi에서 바이트 배열을 문자열로 어떻게 변환합니까?

  25. 25

    C ++에서 char로 문자열 char을 어떻게 읽습니까?

  26. 26

    C ++에서 char를 int로 어떻게 변환합니까?

  27. 27

    부울이있는 배열을 Arduino / C / C ++에서 바이트로 어떻게 변환합니까?

  28. 28

    Windows 범용 응용 프로그램 C #에서 일부 매개 변수와 함께 json 문자열을 게시하려면 어떻게해야합니까?

  29. 29

    Java 컬렉션에서 json 응답 인이 문자열을 어떻게 변환 할 수 있습니까?

뜨겁다태그

보관