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

json으로 파싱한 데이터를 Base64로 인코딩을 해서 onT2 클래스로 넘겼는데도 url에서 파라미터를 받지 못하고 있습니당~흑

0 추천

안녕하세요^^ url 파라미터 전송 질의드립니당ㅜ

json으로 파싱한 데이터를 onT2클래스로 넘겨서 url에 post방식으로 넣었는데 null값으로 나와서

json으로 파싱한 데이터를 Base64로 인코딩을 해서 onT2 클래스로 넘겼는데도 url에서 파라미터를 받지 못하고 있습니당~흑

도와주세요ㅜ 뭐가 문제일까요? 전역변수로 설정하거나 클래스에서 넘긴 다른 파라미터는 모두 잘 들어갑니다.

json으로 파싱한 데이터만 안들어가고 있는데 onT2 클래스에서 로그를 찍으면 로그에는 데이터가 찍힙니다.

json 파싱 데이터를 Base64로 인코딩해서 url에 전송을 해도 파라미터 값이 안잡히는 현상입니다.

감사합니다.

@SuppressLint("HandlerLeak")
private Handler buiHandler = new Handler() {
@SuppressLint("HandlerLeak")
public void handleMessage(Message msg) {
try {
JSONObject json = new JSONObject(page);
JSONArray jArr = json.getJSONArray("items");
for (int i=0; i<jArr.length(); i++) {

json = jArr.getJSONObject(i);
int keyno = Integer.parseInt(json.getString("keyno"));
String str = String.valueOf(keyno);
String keyvalue = json.getString("keyvalue");
String packagename = json.getString("packagename");
final String userid = json.getString("userid");
final String ad_no = json.getString("ad_no");
final String ecloud = json.getString("ecloud");


String ud = Base64.encodeToString((userid + "&ad_no=" + ad_no + "&ecloud=" + ecloud).getBytes(),0);

onT2("","", ud);
}
} catch (Exception e){
}
}
};

public void onT2(String adid, String ipAddress, String ud) {
URL url = null;
try {
url = new URL("http://www.appang.kr/nas/api/join.json.asp");

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.appang.kr/nas/api/join.json.asp");

List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(1);
nameValuePair.add(new BasicNameValuePair("os", os));
nameValuePair.add(new BasicNameValuePair("ap", ap));
nameValuePair.add(new BasicNameValuePair("a", a));
nameValuePair.add(new BasicNameValuePair("ua", adid));
nameValuePair.add(new BasicNameValuePair("ud", ud));
nameValuePair.add(new BasicNameValuePair("ajip", ipAddress));

Log.d("PD1", ud);

marimari (520 포인트) 님이 2015년 10월 16일 질문

2개의 답변

0 추천

음 답답하시겠네요.

저도 이유는 잘 모르겠지만, 슬쩍 적어봅니다. 

 

1. onT2는 메소드 같습니다. 

(onT2 클래스에서 로그를 찍으면 로그에는 데이터가 찍힙니다.)

 

2.  new JSONObject(page);

이부분에서요... 음.. page에 그 파싱하실 json 데이터가 들어오는 것인가요? 

 url에 post방식으로 넣었는데 null값으로 나온다고 하셨는데요.. 음.. 

만약 프로젝트 안에서 들고 계신것이 아니라면, 요청해서 잘 받아 왔는지? (json데이터를요.. 가공전)

를 먼저 판단해 보셔야 할것 같네요. 

본래 넘어온 값이 null (address 착오? 혹은... request 후에 응답 받기 완료 전에 이 로직은 탄다거나...)이면

아무리 JSONObject 인들 그것을 객체화 해줄 방법이 없겠지요.

3. 로그에서는 값이 찍힌다고 하셨는데요... 음...

new ArrayList<NameValuePair>(1);

이부분에서 (1)은 어떤 역활을 하는지요? ()하시면 에러 나시나요?

 

아무튼 꼭 해결 하시길 바랍니다. 

답은 못드리고 오히려 질문을 하고 있네요. 

뭔가 더 진행된 다른 사항도 알려 주시면 더 참고해서 방향을 잡아보면 좋겠네요.. 음..

이미 해결 하셨을수도 있으시겠네요... 

그럼...

익명사용자 님이 2015년 10월 16일 답변
0 추천

nameValuePair.add(new BasicNameValuePair("ud", ud));

ud가 파라미타값인데...

파라미터값에 또 파라미터연산자가 들어가지나요?

bangbang (8,820 포인트) 님이 2015년 10월 19일 답변
...