우리는 웹 사이트에 대한 요청을 받고자하는 Android Studio에서이 앱을 개발하고 있습니다.이 코드를 실행할 때 우리는 "null"이라는 오류가 계속 발생합니다. 이 코드 조각의 변수 중 하나가 null입니다. 누군가가 그것을보고 어떤 변수가 올바르게 사용되지 않고 따라서 null 오류를 제공하는 것을 감지 할 수있는 곳을 볼 수 있습니까?GET 요청에 어떤 문제가 있습니까?
답변
당신은 실제로
con.setRequestMethod("GET");
con.connect();
귀하의 con.getInputStream를 연결 놓친
public class SpotAlgo {
String vidLink;
int linkLoc;
String testString = "<title>";
String result;
public String gettheResult(String v) throws Exception{
String sname = " ";
vidLink = "https://open.spotify.com/track/43PuMrRfbyyuz4QpZ3oAwN";
URL obj = new URL(vidLink);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine = "";
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
result = response.toString();
linkLoc = result.indexOf(testString) + testString.length();
for (int i = linkLoc; i < result.indexOf("on Spotify"); i++) {
sname += result.charAt(i) + "";
}
return obj.toString();
}
}(); 연결이 이루어지지 않고 아무것도 반환되지 않으므로 null입니다.
이유를 부인한다. 그래서 나는 잘못된 것을 배울 수있다. –
getInputStream을 사용하는 순간 암묵적으로 호출되기 때문에 명시 적으로'con.connect()'를 호출 할 필요가 없다. '또는'getOutputStream()'을 호출합니다. 자세한 내용은이 [post] (http://stackoverflow.com/questions/16122999/java-urlconnection-when-do-i-need-to-use-the-connect-method)를 참조하십시오. – Enzokie
우리는 con.connect()를 추가했지만 여전히 null을 제공하고 있습니다. – Programmer87
아무 것도 없습니다. 정상적으로 작동합니다.
널 포인터 예외가있는 경우 코드의 다른 부분과 관련 있다고 생각합니다.
그러나, 여기 당신이 루프에서 SNAME 변수에 텍스트를 추가이 조각에서 그것을
을 개선하기 위해 몇 가지 제안 사항입니다. 이러한 종류의 작업을 수행하면 StringBuilder가 더 효율적입니다.
for (int i = linkLoc; i < result.indexOf("on Spotify"); i++) {
sname += result.charAt(i) + "";
}
//Could be replaced b
for (int i = linkLoc; i < result.indexOf("on Spotify"); i++) {
sb.append(result.charAt(i));
}
나중에 sb.toString()을 사용하여 연산 결과를 얻을 수 있습니다.
더 중요한 것은 네트워크 작업을 수행 할 때 결과가 무엇인지 모를 것입니다. 결과를 유인 할 많은 변수가있을 수 있으며 종종 예외가 발생합니다. try {} finally {}에 네트워크 코드를 래핑하고 finally 블록에서 열려있는 ressources를 닫는 것이 중요합니다. finally 블록은 항상 실행됩니다.
편집 오타에게 고정
편집이 일부 사람들은 404 예외를 던지고 말을
, 나는 내 컴퓨터에 그것을 실행했을 때 하나를 얻을, 그리고 404하지 않았다 당신이 con.getInputStream()을 할 때 IOException을 던질 것이므로 그 대신에 그럴 것입니다.
그것은 내 실수였습니다. – Enzokie
@ 아무도 당신은 내가 문자열을 조립하는 것은 null 오류를주는 것이라고 말하는거야? – Programmer87
아니요, 제공 한 코드에 Null 오류가 없습니다. 나는 그것을 조립하는보다 효율적인 방법을 지적하고있다. –
- 1. 이 요청에 어떤 문제가 있습니까?
- 2. 게시물 요청에 어떤 문제가 있습니까?
- 3. tastypie POST 요청에 어떤 문제가 있습니까?
- 4. 이 HTTP 요청에 어떤 문제가 있습니까?
- 5. SOCKS 프록시 요청에 어떤 문제가 있습니까?
- 6. IE8에서이 XHR 요청에 어떤 문제가 있습니까?
- 7. node.js 및 요청에 문제가 있습니까?
- 8. 회원 유효성 검사 사용자 요청에 어떤 문제가 있습니까? (ClientFormsAuthenticationMembershipProvider 사용)
- 9. Azure Api 관리에서 보낸이 일방 통행 요청에 어떤 문제가 있습니까?
- 10. Google 지역 정보 (레이더 검색) 요청에 어떤 문제가 있습니까?
- 11. 지오 코딩 요청에 문제가 있습니까?
- 12. & http get 요청에
- 13. get 및 put의 제 유형 서명에 어떤 문제가 있습니까?
- 14. PHP GET 요청에 너무 많은 변수가 있습니까?
- 15. HTTP GET 요청에 더 필요한 것이 있습니까?
- 16. CURL 요청에 GET 메소드와 동일한 CURLOPT_POSTFIELDS가 있습니까?
- 17. 내 노선에 어떤 문제가 있습니까?
- 18. 이주기에 어떤 문제가 있습니까? HSSF
- 19. 로그인 프로그램에 어떤 문제가 있습니까?
- 20. 문자열이 PARAMS 내 GET 요청에
- 21. Null에 어떤 문제가 있습니까?
- 22. 로더에 어떤 문제가 있습니까?
- 23. 구조체에 어떤 문제가 있습니까?
- 24. SQL에 어떤 문제가 있습니까?
- 25. 배열에 어떤 문제가 있습니까?
- 26. 코드에 어떤 문제가 있습니까?
- 27. CSS에 어떤 문제가 있습니까?
- 28. 성능에 어떤 문제가 있습니까?
- 29. 배열에 어떤 문제가 있습니까?
- 30. 양식에 어떤 문제가 있습니까?
stacktrace를 Provice하십시오. – Ezequiel
URL이 404 오류를 반환하는 경우와 같이 반환 된 텍스트에 ' "Spotify"가 포함되지 않은 경우 어떻게됩니까? 위에서 언급 한 바와 같이 오류가 무엇인지 알 수 있도록 LogCat을 제공하십시오. –
stacktrace가 : 표면 0xa8d63f60에 EGL_SWAP_BEHAVIOR를 설정하지 못했습니다. 오류 = EGL_BAD_MATCH – Programmer87