Анализ ответа покоя с multipart / form-data - PullRequest
0 голосов
/ 13 июня 2019

Parse API response, содержащий multipart / form-data

Я пробовал следующее, но это не работает.Ищу рекомендации

Ответ API:

    ----1560435280902
    Content-Type: application/json

    {"code":"200","transactionTimestamp":1560435280902,"data":{"imagedDocument": 
    [{"proNumber":"951182326","imageType":"BL","imageFormat":"PDF","imageFiles": 
 [{"base64Data":"Jg==","fileName":"951182326_BL.pdf","contentType":"application/pdf"}],"scanDate":1559312081112}]}}
----1560435280902--

Код, который я пробовал

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim client = New RestClient("https://api.ltl.xpo.com/imaging/1.0/shipments/951182326/imaged-docs?imageFormat=PDF&multiPartResp=False&imageType=BL")
        Dim request = New RestRequest(Method.[GET])
        request.AddHeader("cache-control", "no-cache")
        request.AddHeader("Connection", "keep-alive")
        request.AddHeader("accept-encoding", "gzip, deflate")
        request.AddHeader("Host", "api.ltl.xpo.com")
        request.AddHeader("Cache-Control", "no-cache")
        request.AddHeader("Accept", "*/*")
        request.AddHeader("Authorization", "Bearer " + accessToken)
        Dim response As IRestResponse = client.Execute(request)

        Dim token As XPOImage = Newtonsoft.Json.JsonConvert.DeserializeObject(Of XPOImage)(response.Content)



Public Class ImageFile
Public Property base64Data As String
Public Property fileName As String
Public Property contentType As String
End Class

Public Class ImagedDocument
Public Property proNumber As String
Public Property imageType As String
Public Property imageFormat As String
Public Property imageFiles As ImageFile()
Public Property scanDate As Long
End Class

Public Class Data
    Public Property imagedDocument As ImagedDocument()
End Class

Public Class XPOImage
    Public Property code As String
    Public Property transactionTimestamp As Long
    Public Property data As Data
End Class

Необходимо получить закодированное изображение base64.

1 Ответ

0 голосов
/ 13 июня 2019

Мне удалось использовать Regex, чтобы получить JSON из ответа, состоящего из нескольких частей.

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
    Dim client = New RestClient("https://api.ltl.xpo.com/imaging/1.0/shipments/951182326/imaged-docs?imageFormat=PDF&multiPartResp=False&imageType=BL")
    Dim request = New RestRequest(Method.[GET])
    request.AddHeader("cache-control", "no-cache")
    request.AddHeader("Connection", "keep-alive")
    request.AddHeader("accept-encoding", "gzip, deflate")
    request.AddHeader("Host", "api.ltl.xpo.com")
    request.AddHeader("Cache-Control", "no-cache")
    request.AddHeader("Accept", "*/*")
    request.AddHeader("Authorization", "Bearer " + accessToken)
    Dim response As IRestResponse = client.Execute(request)

    Dim regexResponse = Regex.Match(response.Content, "\{.*\:\{.*\:.*\}\}")

    Dim token As XPOImage = Newtonsoft.Json.JsonConvert.DeserializeObject(Of XPOImage)(regexResponse.ToString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...