2012-10-22 4 views
0
를 사용

가능한 중복 :
How to reading XML from a URL in Android안드로이드 클라이언트 XML-메시지

아이디어는 XML-메시지를 보내고 XML을 받고 기존 서버에서 작동 할 안드로이드 응용 프로그램을 만드는 것입니다 -responses.

try { 
       URL url1 = null; 
       url1 = new URL("http://mysite.com/"); 
       URLConnection urlc1 = url1.openConnection(); 
       HttpURLConnection con1 = (HttpURLConnection) urlc1; 

       con1.setRequestMethod("POST"); 

       con1.setUseCaches(false); 
       con1.setDoOutput(true); 
       con1.setDoInput(true); 
       con1.setRequestProperty("accept-charset", "UTF-8"); 
       con1.setRequestProperty("content-type", "application/x-www-form-urlencoded"); 


       XmlSerializer ser1 = Xml.newSerializer(); 
       StringWriter writer = new StringWriter(); 
       ser1.setOutput(writer); 
       ser1.startDocument("UTF-8", true);    
       ser1.startTag("", "request"); 
       ser1.attribute("", "query", "open_session"); 
       ser1.startTag("", ""); 
       ser1.attribute("", "client", "name"); 
       ser1.attribute("", "version", "1.0"); 
       ser1.endTag("", ""); 
       ser1.endTag("", "request"); 
       ser1.endDocument(); 

       String query = writer.toString(); 

       con1.connect(); 

       OutputStreamWriter out1 = new OutputStreamWriter(con1.getOutputStream()); 
       out1.write(query); 
       out1.flush(); 


       String result1 = null; 
       BufferedReader br1 = new BufferedReader(new InputStreamReader(con1.getInputStream())); 
       StringBuffer sb = new StringBuffer(); 
       String line; 
       while ((line = br1.readLine()) != null){ 
        sb.append(line); 
        } 
       br1.close(); 
       result1 = sb.toString(); 


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

프로그램은 연결을 여는 로그인 요청 XML을 생성, 서버로 전송하고 XML 응답을 가져옵니다

여기에 코드입니다.

하지만 제대로 작동하지 않습니다. 내가받는 응답은 다음과 같습니다.

<html><head><title>302 Found</title></head></body bg color="white"><center><h1>302 Found</h1></center><hr><center>nginx/1.0.0</center></body><html> 

그리고 이것은 서버의 오류 목록이 아닙니다. 성공적인 대답은해야합니다 :

<result success="true"> 
<session-info time-out="number" id="number" start="number"/> 
</result> 

그것은 내가 코드의이 부분 의견을 때, 흥미로운 :

<result success="false"> 
<error error-code="XML-01"> 
Wrong XML 
</error> 
</result> 

수 :

OutputStreamWriter out1 = new OutputStreamWriter(con1.getOutputStream()); 
out1.write(query); 
out1.flush(); 

를 내가 적절한 XML-오류 답변을 얻을 너 나 도와? 사전에

감사합니다.

+0

확인 완료 데모 http://stackoverflow.com/a/12856655/1487822 –

답변

0

302 Found은 리디렉션 메시지이며 HttpClient을 사용하는 경우 내부에서 이러한 리디렉션을 처리 할 수 ​​있습니다.

XML을 서버에 게시하는 방법에 대한 개요를 보려면 https://stackoverflow.com/a/2560129/1321873을 살펴보십시오. (SOAP XML을 보내지 만 일반 XML을 전송하는 메커니즘도 동일합니다. 콘텐츠 유형을 변경하십시오.

+0

감사합니다. 리디렉션 힌트는 서비스 소유자와 함께 관리했습니다. 하지만 지금은 또 다른 문제가 있습니다. 따르면 로그 서버에 내 XML을받지 않습니다. CGI를 사용해야한다고 들었지만 어떻게해야할지 모르겠다. 당신은 조언을 해줄 수 있습니까? – user1765320

+0

새로운 질문으로 게시 할 수 있습니까? – Rajesh

+0

해냈습니다. http://stackoverflow.com/questions/13074411/android-client-not-sending-xml-to-the-server – user1765320

관련 문제