コードが次のコードに対してIllegalArgumentExceptionをスローしているのはなぜですか?

私はURLからCSVファイルを取得しようとしています。しかし、私はエラーとして

java.lang.IllegalArgumentException:インデックス43のクエリの不正な文字:

同じコードが他のURLのために働いています。

try
{
    String result = "";
    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpGet httpGet = new HttpGet("http://in.finance.yahoo.com/d/quotes.csv?s=^BSESN+^NSEI +LML.NS +LT.NS +RELIANCE.NS +HUL.BO+ONGC.NS+GOLDBEES.BO +ITC.NS +Acc.NS+UNITECH.NS +SPANCO.BO +OCL.NS +LAKSHMIO.BO+POWERGRID.BO+PACIF.BO+COALINDIA.NS+SATYAMCOM.NS+Bhel.ns+SBIN.NS+Plethico.ns+COLPAL.NS+USHAMART.NS+MTNL.NS +RUCHINFRA.NS&f=nl1oc1ghpvjk");
    HttpResponse response = httpClient.execute(httpGet, localContext);
    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    try
    {
        StringBuffer sb = new StringBuffer();
        String line;
        while((line = reader.readLine())!=null)
        {
            String rowData[] = line.split(",");
            sb.append("\n"+rowData[0]);
        }
        t.setText(sb.toString());
    }
    catch (Exception e) {
       //TODO: handle exception
    }
} catch (ClientProtocolException e) {
   //TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
   //TODO Auto-generated catch block
    e.printStackTrace();
}

前もって感謝します..

1
あなたのURLは、不正な形式である必要があります。 stackoverflow.com/questions/749709 /…
追加された 著者 denis.solonenko,
助けてくれてありがとう ..
追加された 著者 Archana,

1 答え

私はあなたのURLにいくつかの符号化されていないシンボルがあるかもしれないと思う、引数として渡す前にあなたの文字列をエンコードしようとする:

HttpGet httpGet = new HttpGet(Uri.encode("http://in.finance.yahoo.com/d/quotes.csv?s=^BSESN+^NSEI +LML.NS +LT.NS +RELIANCE.NS +HUL.BO+ONGC.NS+GOLDBEES.BO +ITC.NS +Acc.NS+UNITECH.NS +SPANCO.BO +OCL.NS +LAKSHMIO.BO+POWERGRID.BO+PACIF.BO+COALINDIA.NS+SATYAMCOM.NS+Bhel.ns+SBIN.NS+Plethico.ns+COLPAL.NS+USHAMART.NS+MTNL.NS +RUCHINFRA.NS&f=nl1oc1ghpvjk"));
0
追加された