Ich bin derzeit versucht, den Java-äquivalent zu diesem curl Befehl, um herauszufinden:Java gleichwertig kräuseln Befehl
curl -X POST -u username:password -H "X-Atlassian-Token: no-check" http://example.com/rest/api/1.0/projects/STASH/avatar.png -F [email protected]
Jede Hilfe würde geschätzt.
Bis jetzt hatte ich Erfolg mit der Apache HTTP-Bibliothek. Unten ist ein Beispiel für eine POST-Anfrage, die ich erfolgreich verwendet habe. Allerdings ist in diesem Beispiel die äquivalent diesen curl Befehls:
curl -X POST -u username:password -H "Content-type: application/json" --data '{\"name\":\"projectName\", \"key\":\"KEY\", \"description\":\"good?\"}' "http://localhost:7990/rest/api/1.0/projects"
und der Java-Äquivalent:
// initialize connection
CloseableHttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("http://localhost:7990/rest/api/1.0/projects")
try
{
// create a request using the input
StringEntity request = new StringEntity("{\"name\":\"projectName\", \"key\":\"KEY\", \"description\":\"good?\"}",ContentType.APPLICATION_JSON);
post.setEntity(request);
// add credentials to the header in order to get authorization
String credentials = username + ":" + password
byte[] encodedCredentials = Base64.encodeBase64(credentials.getBytes("UTF-8"));
String header = "Basic " + new String(encodedCredentials);
post.addHeader("Authorization",header);
// execute the request using the POST method
client.execute(post);
}
catch(Exception e)
{
// nada
}
finally
{
// close the connection
post.releaseConnection();
}
Dies ist, was ich habe kommen mit dem curl Befehl zum Nachahmen zuerst genannten I:
Ich denke, es ist nur der Datei-Upload-Teil, der mich stolpert. Ich weiß, dass die ursprüngliche Curl-Anfrage funktioniert, ich habe sie erfolgreich in git bash ausgeführt.
Bei der Suche nach dem richtigen Weg zum Hochladen von Dateien bin ich auf Beispiele gestoßen, die verschiedene Versionen von mehrteiligen Daten verwenden, wie zum Beispiel den MultipartEntityBuilder oder MultipartRequestEntity. Aber bis jetzt hatte ich keinen Erfolg mit ihnen (Das heißt nicht, dass sie falsch lagen, ich weiß einfach nicht was ich mache).