2017-09-16 13 views
0

URLにPDFのBase64文字列を含める必要があるAPIからのダウンロードリクエストを作成しようとしています。 WebClient.DownloadString()メソッドを使用していて、System.IO.PathTooLongExceptionを返します。WebClient.DownloadString()から "Too Long"エラーを回避するにはどうすればよいですか?

URI(〜60k)の文字に制限があり、私のURIがそれよりも数千倍多いことがわかっていますので、ベースURLや何かを設定することは役に立たないと思います。 URI文字制限をバイパスする方法はありますか?

+0

そのコンストラクタは、それはまた、文字列を受け入れるオーバーロードされているとして、あなたがURIとしてURLを渡している理由。 。 –

+0

私はメソッドに文字列urlを渡しています – hsbsid

答えて

2

HTTP 414エラーの結果としてWebClientによってSystem.IO.PathTooLongExceptionがスローされると仮定しますか?その場合、サーバーはその長さのget-requestを許可しません。

GETパラメータとしてpdfデータを追加する必要がありますか? このようなデータを投稿してみてください:

using (WebClient wc = new WebClient()) 
{ 
    var nvc = new NameValueCollection(); 
    nvc.Add("pdf-parameter", "encoded-pdf-here"); 
    // UploadValues uses 'POST' by default 
    var data = wc.UploadValues(url, nvc); 
    // Adjust result encoding if required... 
    var result = Encoding.UTF8.GetString(data); 
} 
+0

私はこの質問の答えからメソッドを使ってみました:https://stackoverflow.com/questions/4088625/net-simplest-way-to-send-post-with -data-and-read-responseであり、完璧に動作します。提案していただきありがとうございます。 – hsbsid

関連する問題