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!):
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!):
java.io.FileNotFoundException: https://euw.api.pvp.net/api/lol/euw...?api_key=ba26e2ff-1866-4f9b-8dda-49927caec406
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(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
Java:
public int getsummonersIDurl(String name) throws UnsupportedEncodingException{
summonersName = name;
summonersIDurl = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/" + summonersName + "?api_key="+riotKey;
return call.apiUrlId(summonersIDurl);
}
Java:
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;
InputStream is = null;
BufferedReader br;
String line;
int sumID;
public riotApiCall() {
}
public int apiUrlId(String urlString) {
try {
url = new URL(urlString);
is = url.openStream(); // throws an IOException
br = new BufferedReader(new InputStreamReader(is));
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);
sumID = Integer.parseInt(line);
}
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
if (is != null)
is.close();
} catch (IOException ioe) {
// 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