lundi 25 mai 2015
Kodierung von String -> URL aufruf
Posted on 09:21 by verona
Hey Leute,
zur Zeit entwickel ich ein kleines Tool, welches meiner Zocker-Gemeinschaft (league of legends) eine Vereinfachung beim veranstalten von Turnieren bringen soll. Ich will den Anmeldeprozess sowie das Teambuilding automatisieren.
Der Kern funktioniert auch schon ohne Probleme, nur habe ich mit einigen Nicknames Probleme. Viele Spieler nutzen "komische"(mir ist der Name entfallen) Zeichen in ihren Nicks, womit ich nun zu kämpfen habe.
Ein Beispiel wäre der Spieler "Hi im Chên". Mit diesem Namen muss ich nun ein URL-Request (Riot) durchführen, damit ich mir die einzigartige ID holen kann. Der Aufruf gelingt mir aber (auf Grund der Leerzeichen und auf Grund der Zeichen) nicht. Andere Nicks haben bsp. auch Leerzeichen in der Mitte, die ich einfach durch stumpfes "replace" mit "%20" austausche - hier funktioniert der URL-Aufruf ohne Probleme!
Beim Ausführen mit dem oben genannten Nick, bekomme ich folgende Fehler (habe die leerzeichen auch durch "%20" ersetzt!):
java.io.FileNotFoundException: http://ift.tt/1KhLVDB
at sun.net.http://www.protocol.http.HttpURLConn...tream0(Unknown Source)
at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
at sun.net.http://www.protocol.https.HttpsURLCo...Stream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at zockernight.riotApiCall.apiUrlId(riotApiCall.java:25)
at zockernight.parser.getsummonersIDurl(parser.java:65)
at zockernight.parser.einlesen(parser.java:49)
at zockernight.main.main(main.java:8)
Hier erstelle ich die URL, mit der ich (unten) weiterarbeite. (als "String name" wird in diesem Fall "Hi%20im%20Chên" übergeben
Ich hoffe ihr könnt mir helfen und mir einen kleinen Denkanstoß geben. auch mit URLEncode habe ich es nicht funktionsfähig bekommen.
Grüße
blumenpeter
zur Zeit entwickel ich ein kleines Tool, welches meiner Zocker-Gemeinschaft (league of legends) eine Vereinfachung beim veranstalten von Turnieren bringen soll. Ich will den Anmeldeprozess sowie das Teambuilding automatisieren.
Der Kern funktioniert auch schon ohne Probleme, nur habe ich mit einigen Nicknames Probleme. Viele Spieler nutzen "komische"(mir ist der Name entfallen) Zeichen in ihren Nicks, womit ich nun zu kämpfen habe.
Ein Beispiel wäre der Spieler "Hi im Chên". Mit diesem Namen muss ich nun ein URL-Request (Riot) durchführen, damit ich mir die einzigartige ID holen kann. Der Aufruf gelingt mir aber (auf Grund der Leerzeichen und auf Grund der Zeichen) nicht. Andere Nicks haben bsp. auch Leerzeichen in der Mitte, die ich einfach durch stumpfes "replace" mit "%20" austausche - hier funktioniert der URL-Aufruf ohne Probleme!
Beim Ausführen mit dem oben genannten Nick, bekomme ich folgende Fehler (habe die leerzeichen auch durch "%20" ersetzt!):
Zitat:
java.io.FileNotFoundException: http://ift.tt/1KhLVDB
at sun.net.http://www.protocol.http.HttpURLConn...tream0(Unknown Source)
at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
at sun.net.http://www.protocol.https.HttpsURLCo...Stream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at zockernight.riotApiCall.apiUrlId(riotApiCall.java:25)
at zockernight.parser.getsummonersIDurl(parser.java:65)
at zockernight.parser.einlesen(parser.java:49)
at zockernight.main.main(main.java:8)
Java Code:
-
-
summonersName = name;
-
summonersIDurl = "http://ift.tt/1dt9Ky1; + summonersName + "?api_key="+riotKey;
-
return call.apiUrlId(summonersIDurl);
-
-
}
Java Code:
-
-
package zockernight;
-
-
import java.io.BufferedReader;
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.io.InputStreamReader;
-
import java.net.MalformedURLException;
-
import java.net.URL;
-
import java.net.URLEncoder;
-
-
public class riotApiCall {
-
URL url;
-
BufferedReader br;
-
String line;
-
int sumID;
-
-
public riotApiCall() {
-
-
}
-
-
try {
-
is = url.openStream(); // throws an IOException
-
-
while ((line = br.readLine()) != null) {
-
if (line.contains("HTTP ERROR 404")) {
-
return 0;
-
} else {
-
line = line.substring(line.indexOf("id") + 4,
-
line.indexOf(","));
-
//System.out.println(line);
-
}
-
}
-
mue.printStackTrace();
-
ioe.printStackTrace();
-
} finally {
-
try {
-
if (is != null)
-
is.close();
-
// nothing to see here
-
}
-
}
-
return sumID;
-
}
-
}
Ich hoffe ihr könnt mir helfen und mir einen kleinen Denkanstoß geben. auch mit URLEncode habe ich es nicht funktionsfähig bekommen.
Grüße
blumenpeter
Kodierung von String -> URL aufruf
Categories: Kodierung von String -> URL aufruf
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire