【解決方法】これを解決するにはどうすればよいですか "指定された値に無効な CRLF 文字が含まれています"?


やあ

外部 API URL への POST XML データに問題があります
Error is System.ArgumentException: ‘指定された値に無効な CRLF 文字が含まれています。
私に助言してください
ありがとうございました
マディーン

以下は私のコードです

私が試したこと:

    Dim url = "https://gold.mxpress2u.net/gold/API.asmx"
    Dim httpRequest = CType(WebRequest.Create(url), HttpWebRequest)
    httpRequest.Method = "POST"
    httpRequest.ContentType = "application/xml"
    httpRequest.Accept = "application/xml"

    Dim data = Me.txtXML.Text
    httpRequest.Headers("strAPIKey") = "API Key"
    httpRequest.Headers("strCustomerAccount") = "Account No"
    httpRequest.Headers("intPrintFormatType") = "1"
    httpRequest.Headers("strShipmentDetailsXML") = data

'' After debug the error is on this "httpRequest.Headers("strShipmentDetailsXML") = data"
'' Error is System.ArgumentException: 'Specified value has invalid CRLF characters.

    Dim streamWriter = New StreamWriter(httpRequest.GetRequestStream())
    If True Then
        streamWriter.Write(data)
    End If
    Dim httpResponse = CType(httpRequest.GetResponse(), HttpWebResponse)
    Dim streamReader = New StreamReader(httpResponse.GetResponseStream())
    If True Then
        Dim result = streamReader.ReadToEnd()
    End If
    Console.WriteLine(httpResponse.StatusCode)
XML
<xml><ServiceTypeID>1</ServiceTypeID><ShipperContactPerson>padhma</ShipperContactPerson><ShipperCompanyName>Jetpharma Sdn Bhd</ShipperCompanyName><ShipperPhoneNumber>03-8076 1651</ShipperPhoneNumber><OriginCountryID>1</OriginCountryID><OriginStateID>12</OriginStateID><OriginPostcode>47000</OriginPostcode><OriginCity>Bandar Puchong Jaya</OriginCity><OriginAddress>1, 11 & 13, Jalan Rajawali 2, Bandar Puchong Jaya, 
47100 Puchong, Selangor</OriginAddress><RecpContactPerson>contact Person</RecpContactPerson><RecpCompanyName>Azam Bekal Enterprise</RecpCompanyName><RecpPhoneNumber>0146675956</RecpPhoneNumber><DestCountryID>1</DestCountryID><DestStateID>11</DestStateID><DestPostcode>45000</DestPostcode><DestCity>Ipoh</DestCity><DestAddress>Farmasi Azam No. 6, Jalan Cindai Jaya 1, Taman Cindai Jaya, 08000 Sungai Petani, Kedah. 08000</DestAddress><Description>small package</Description><Remarks>Remarks</Remarks><Pieces>6</Pieces><Weight>0.00</Weight><Length>1.00</Length><Width>1.00</Width><Height>1.00</Height><CODAmount>0.00</CODAmount><ReferenceNumber>SO-1298712</ReferenceNumber></xml>

解決策 2

問題は次の行にある可能性が非常に高いです。

XML
<OriginAddress>1, 11 & 13, Jalan Rajawali 2, Bandar Puchong Jaya, 

11 と 13 の間のアンパサンド文字は、XML にとって特別な意味を持っている (私は疑う) ので、エスケープする必要があります。 推奨される解決策については、Google を確認してください。

解決策 1

これは通常、渡されるデータに改行とタブ スペースがある場合に発生します。 HttpRequest ヘッダ。

からすべての改行とスペースを削除します strShipmentDetailsXML 試してみてください。 よくわかりませんが、改行またはスペースポストがあるようです OrininStateID 上のタグ。

ここで報告された同様の問題: ASP.Net エラー: 指定された値に無効な CRLF 文字が含まれています[^]

コメント

タイトルとURLをコピーしました