0

私のアプリは何年にもわたって同じコードを使用しており、メールアドレスとパスワードをJSON Webサービスサイトに送信してから、指定された情報を取得します。現在、更新のためにいくつかの追加情報を送信しようとしていますが、2つの追加値を追加すると、アプリがクラッシュします。

private void doTfr() {
  String result = "";
  String mailAddr = " ";
  String feedback = " ";
  String lectName = MyLecturesActivity.LectName;
  String url = "http://jobtracker.myweb.com/jsonWeb/Default.aspx";

  mailAddr = "s.chase@testweb.com";     
  EditText fBack = (EditText) findViewById(R.id.myfeedback_feedback2);
  feedback = fBack.getText().toString();
  lectName = "Test Android";

  url = url + "?maddr=" + mailAddr + "&pwd=FB&lect=" + "\"lectName\"&fb=\"" + feedback + "\""; 

  //url = url + "?maddr=" + mailAddr + &pwd=BI"; Using this url works!                    
  try {

    HttpClient httpclient = new DefaultHttpClient();

        HttpGet httpget = new HttpGet(url);   ****Crashes here

        HttpResponse response;

        response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();

        if (entity != null) {

          InputStream instream = entity.getContent();
          result = convertStreamToString(instream);
          result = result.replaceAll(""", "\"");

          JSONObject json=new JSONObject(result);
          JSONArray nameArray=json.names();
          JSONArray valArray=json.toJSONArray(nameArray);
        endif
          nstream.close();
        }


    } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (IOException e) {
           // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (JSONException e) {
        }
      }
}

コメントアウトされたURLを使用すると、機能します。2つの新しい値を追加するとクラッシュする理由を誰かに教えてもらえますか?それは文字列のサイズでしょうか?

4

1 に答える 1

0

引用符を処理するには、そのURLをエンコードする必要があります。

String encodedUrl = URLEncoder.encode(url, "UTF-8");
于 2012-12-09T13:05:47.210 に答える