4

Encoded URL -

https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select%20*%20where%20((A%20%3D%20201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU

Decoded URL -

https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select * where ((A= 201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU

In the URI builder which URL we should use encoded or decoded?

Also the given code is not working :-

String xyz="1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU";
    String X="201";


    final String STUDENT_RECORD_URL="https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select*where";
    final String Frag1 = "A";
    final String Frag2 =  "key";
    Builder builder = Uri.parse(STUDENT_RECORD_URL).buildUpon();
    builder.appendQueryParameter(Frag1,X);
    builder.appendQueryParameter(Frag2,xyz);
    String finalUri=builder.build().toString();
jwa
  • 3,239
  • 2
  • 23
  • 54
Parv bali
  • 147
  • 1
  • 11

1 Answers1

4

I think you are misunderstanding what your query params are. They should each be key-value pairs in your url. For your url https://spreadsheets.google.com/tq?tqx=out:JSON&tq=select * where ((A= 201))&key=1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU, building it would look something like:

final String STUDENT_RECORD_URL="https://spreadsheets.google.com/tq";

Builder builder = Uri.parse(STUDENT_RECORD_URL).buildUpon();
builder.appendQueryParameter("txq", "out:JSON");
builder.appendQueryParameter("tq", "select * where ((A= 201))");
builder.appendQueryParameter("key", "1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU");

String finalUri = builder.build().toString();

The appendQueryParameter method will automatically url encode your parameters.

nicobatu
  • 1,377
  • 3
  • 15
  • 34
  • how to get 201 entered dynamically by user? – Parv bali Jul 14 '16 at 17:52
  • But its not working String X='201'; final String STUDENT_RECORD_URL="https://spreadsheets.google.com/tq"; Builder builder = Uri.parse(STUDENT_RECORD_URL).buildUpon(); builder.appendQueryParameter("txq", "out:JSON"); builder.appendQueryParameter("tq", "select * where ((A= X))"); builder.appendQueryParameter("key", "1424bS7kU8nJbHdu4QdoAFdIdWDSnmEnj2NqfMb6rPTU"); – Parv bali Jul 14 '16 at 20:06
  • You're using the String "X" instead of your variable here: "select * where ((A= X))". You need to close the quotes before referencing your variable, like this: "select * where ((A= " + X + "))". – nicobatu Jul 14 '16 at 21:22
  • if some one entered the wrong variable that is not available in the JSON then how to identify that? – Parv bali Jul 14 '16 at 23:42
  • You should be validating the input or error handling the response. – nicobatu Jul 14 '16 at 23:43
  • You may want to do some independent research first, then ask that in a new question. – nicobatu Jul 15 '16 at 16:31