마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드에서 php서버로 post 방식으로 전달하려 하는데 오류가 나옵니다..

0 추천

안녕하세요

문자를 브로드캐스트로 받고 그걸 서버로 전송해 저장을 하려고하는데요 post방식으로 전달하고 싶은데..

 

오류가 나와서 질문 올렸습니다..

 

public void onReceive(Context $context, Intent $intent) {
		Bundle bundle = $intent.getExtras();
		System.out.println("bsj----------------------------------------------");
		if (bundle == null)
			return;
		
		Object messages[] = (Object[])bundle.get("pdus");
		SmsMessage smsMessage[] = new SmsMessage[messages.length];
		Object[] pdus = (Object[]) bundle.get("pdus");
		
		
		for(int i = 0; i < messages.length; i++) {
            // PDU 포맷으로 되어 있는 메시지를 복원합니다.
            smsMessage[i] = SmsMessage.createFromPdu((byte[])messages[i]);
        }
		 // SMS 수신 시간 확인
        Date curDate = new Date(smsMessage[0].getTimestampMillis());
        Log.d("문자 수신 시간", curDate.toString());
        System.out.println("bsj-------------------문자 수신 시간-------"+curDate.toString());
        // SMS 발신 번호 확인
        String origNumber = smsMessage[0].getOriginatingAddress();
        System.out.println("bsj-------------------SMS 발신 번호 확인-------"+origNumber);
        // SMS 메시지 확인
        String message = smsMessage[0].getMessageBody().toString();
        Log.d("문자 내용", "발신자 : "+origNumber+", 내용 : " + message);
        System.out.println("bsj-------------------SMS 문자 내용-------"+message);
		if (pdus == null)
			return;
		System.out.println("bsj----------------------------------------------2");
		ArrayList<String> msgs = new ArrayList<String>();
		String number = "";
		for (int i = 0; i < pdus.length; i++) {
			SmsMessage smsMsg = SmsMessage.createFromPdu((byte[]) pdus[i]);
			number = smsMsg.getDisplayOriginatingAddress();

			msgs.add(smsMsg.getDisplayMessageBody());
		}
		System.out.println("bsj----------------------------------------------3");
		if (!TextUtils.isEmpty(number) && number.contains(";"))
			number = number.split(";")[0];

		if (!TextUtils.isEmpty(number))
			number = number.trim().replaceAll("[^0-9]", "");
		System.out.println("bsj----------------------------------------------4");
		msg = TextUtils.join(" ", msgs);
		System.out.println("bsj--------------------------"+number+"----"+msg);
		Log.i("SMSReceiver.java | onReceive", "|" + number + "|" + msg);
		
		//POST 방식으로 서버 전송..
		new SendPost().execute();	
	}

 

private class SendPost extends AsyncTask<Void, Void, String> {
		protected String doInBackground(Void... unused) {
			String content = executeClient();
			return content;
		}

		protected void onPostExecute(String result) {
			// 모두 작업을 마치고 실행할 일 (메소드 등등)
		}


		// 실제 전송하는 부분
		public String executeClient() {
			String url;
						
			ArrayList<NameValuePair> post = new ArrayList<NameValuePair>();
		
			post.add(new BasicNameValuePair("msg",msg));

			// 연결 HttpClient 객체 생성
			HttpClient client = new DefaultHttpClient();

			// 객체 연결 설정 부분, 연결 최대시간 등등
			HttpParams params = client.getParams();
			HttpConnectionParams.setConnectionTimeout(params, 5000);
			HttpConnectionParams.setSoTimeout(params, 5000);

			// Post객체 생성
			HttpPost httpPost = new HttpPost("서버주소../mobile/db/smsSyncTime.php");

			try {
				UrlEncodedFormEntity entity = new UrlEncodedFormEntity(post,
						"UTF-8");
				httpPost.setEntity(entity);
				client.execute(httpPost);
				return EntityUtils.getContentCharSet(entity);
			} catch (ClientProtocolException e) {
				System.out.println("bsj---------------------------------err1-------------"+e);
				e.printStackTrace();
			} catch (IOException e) {
				System.out.println("bsj----------------------------------err2------------"+e);
				e.printStackTrace();
			}
			return null;
		}
	}

 

 

이렇게 프로그램 되어있구요.

문자를 읽어오는거 까진 확인이 되었습니다.

post 로 전달할때 

 

08-20 18:29:32.669: I/System.out(16576): bsj----------------------------------err2------------org.apache.http.conn.HttpHostConnectException: Connection to 서버주소 refused
 
이렇게 나옵니다.
 

서버에 방화벽이나 접근을 제한하는건 없거든요..

잘못된 부분좀 지적부탁드립니다.. ㅜㅠ

 

 

꾸우우 (1,140 포인트) 님이 2015년 8월 20일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...