2012-02-08 6 views
0

Я просто пытаюсь проверить строки, отправленные с android в django , а затем ответ отправляется из django в виде строки обратно в android Этот код работает, когда я проверяю его на своем веб-браузере, но не на андроид приложении Это Джанго код вида Джанго:Parsing string in android from django

def login(request): 
form = LoginForm(request.POST) 
if request.method=='POST': 
    uid=request.POST['uid'] 
    name=request.POST['name'] 
    if name=="ajinkya" : 
     if uid=='11111': 
      return HttpResponse("You are logged in...Thanks", content_type="text") 

return render_to_response('login.html',{'form':form},context_instance=RequestContext(request)) 

Я пытаюсь разобрать строку отправленной из Джанго в андроиде

моего андроид код приложения является:

public class UploaddemoActivity extends Activity { 
    public String strUID; 
    public String strname; 
    public String string_response; 
    InputStream inputStream; 
    public String url; 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final EditText UID = (EditText) findViewById(R.id.UID); 
     UID.setOnKeyListener(new View.OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     strUID = UID.getText().toString(); 
       return true; 
       } 
       return false; 
       } 
       }); 

     final EditText nameText = (EditText) findViewById(R.id.EditText_Nickname); 
     nameText.setOnKeyListener(new View.OnKeyListener() { 
       public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) { 
     strname = nameText.getText().toString(); 
       return true; 
      } 
      return false; 
      } 
      });  


    Button button; 

    button = (Button) findViewById(R.id.button1); 
    button.setOnClickListener(new Button.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      ArrayList<NameValuePair> vars = new ArrayList<NameValuePair>(); 
      vars.add(new BasicNameValuePair("uid",strUID)); 
      vars.add(new BasicNameValuePair("name",strname)); 
      try{ 
       HttpClient httpclient = new DefaultHttpClient(); 
       url="http://192.168.1.2/mysite/login/"; 
       HttpPost httppost = new HttpPost(url); 
       httppost.setEntity(new UrlEncodedFormEntity(vars)); 
       HttpResponse response = httpclient.execute(httppost); 
       string_response = convertResponseToString(response); 
       Toast.makeText(UploaddemoActivity.this, "Response " + string_response, Toast.LENGTH_LONG).show(); 
       }catch(Exception e){ 
       Toast.makeText(UploaddemoActivity.this, "ERROR " + e.getMessage(), Toast.LENGTH_LONG).show(); 
       System.out.println("Error in http connection "+e.toString()); 
       } 
     } 
    }); 


} 


public String convertResponseToString(HttpResponse response) throws IllegalStateException, IOException{ 
     String res = ""; 
     StringBuffer buffer = new StringBuffer(); 
    inputStream = response.getEntity().getContent(); 
    int contentLength = (int) response.getEntity().getContentLength(); //getting content length….. 
    Toast.makeText(UploaddemoActivity.this, "contentLength : " + contentLength, Toast.LENGTH_LONG).show(); 
    if (contentLength < 0){} 
    else{ 
     byte[] data = new byte[512]; 
     int len = 0; 
     try{ 
      while (-1 != (len = inputStream.read(data))) 
      { 
       buffer.append(new String(data, 0, len)); //converting to string and appending to stringbuffer 
      } 
      }catch (IOException e){e.printStackTrace();} 
     try{ 
      inputStream.close(); // closing the stream 
      }catch (IOException e){e.printStackTrace();} 

    res = buffer.toString();  // converting stringbuffer to string 
    Toast.makeText(UploaddemoActivity.this, "Result : " + res, Toast.LENGTH_LONG).show(); 

    } 
    return res; 
    } 

}

это просто дает мне réponse -1, а не строка, которую я послал в Джанго

+0

До сих пор не работает ... – user1163236

ответ

0

Попробуйте

public String convertResponseToString(HttpResponse response){ 
    return EntityUtils.toString(response.getEntity(); 
} 
+0

пытался, но до сих пор не работает давая me content length -1 – user1163236

+0

может кто-нибудь помочь мне пожалуйста .... как разобрать json-объект или строку в android, переданный из django ?????? пробовали много вещей, но до сих пор не получили – user1163236