Commit a70344e6 authored by Nastuzzi Samy's avatar Nastuzzi Samy
Browse files

CAS connexion bug

CAS doesn't allow JSON data
Add content type choice for post information
parent 81cecf07
......@@ -36,7 +36,7 @@ public class CASConnexion {
request.addPost("username", username);
request.addPost("password", password);
if (request.post() == 201)
if (request.post(false) == 201)
this.location = request.getHeader("Location");
else
throw new Exception("Not Connected");
......@@ -72,7 +72,7 @@ public class CASConnexion {
HTTPRequest request = new HTTPRequest(this.location);
request.addPost("service", service);
if (request.post() == 200)
if (request.post(false) == 200)
this.ticket = request.getResponse();
else
throw new RuntimeException("Service not added");
......
......@@ -85,13 +85,14 @@ public class HTTPRequest {
return getResponseCode();
}
public int post() {
public int post() { return post(true); }
public int post(final Boolean sendJSON) {
String get = null;
String post = null;
try {
get = get2String(this.getArgs);
post = post2String(this.postArgs);
post = post2String(this.postArgs, sendJSON);
}
catch (Exception e) {
Log.e(LOG_TAG, "error: " + e.getMessage());
......@@ -102,7 +103,7 @@ public class HTTPRequest {
try {
this.request = (HttpURLConnection) (new URL(this.url + get)).openConnection();
this.request.setRequestMethod("POST");
this.request.setRequestProperty("Content-Type", "application/json");
this.request.setRequestProperty("Content-Type", sendJSON ? "application/json" : "application/x-www-form-urlencoded");
this.request.setRequestProperty("charset", "utf-8");
this.request.setRequestProperty("Cookie", getCookiesHeader());
this.request.setUseCaches(false);
......@@ -293,8 +294,16 @@ public class HTTPRequest {
return data;
}
protected String post2String(Map<String, Object> args) throws UnsupportedEncodingException {
return map2JsonNode(args).toString();
protected String post2String(Map<String, Object> args, boolean inJSON) throws Exception {
if (inJSON)
return map2JsonNode(args).toString();
String data = "";
for (String arg : args.keySet())
data += (URLEncoder.encode(arg, "UTF-8") + "=" + URLEncoder.encode((String) args.get(arg), "UTF-8") + "&");
return data.equals("") ? "" : data.substring(0, data.length() - 1);
}
public void setGet(Map<String, String> args) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment