Ich verwende HTTPClient mit Eclipse, um eine POST-Anfrage an unsere eigene Software zu generieren.Parameter in POST-Anfrage ändert sich automatisch auf der Empfängerseite
Hier ist mein POST-Request Code:
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthenticationException;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
public class Posts {
public void sendPost() throws ClientProtocolException, IOException, AuthenticationException{
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:8080/zarr-web/command/import/BDP?deltaImport=true");
// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("fileName", "D:\\\\Colibri_workspace\\colibri_trunk\\zarr\\zarr-backend\\servers\\wildfly-8.2.0.Final\\bin\\presentation\\soap_automation\\BANKDIRECTORYPLUS_V3_DAILY_DELTA_20170930.txt"));
UsernamePasswordCredentials creds
= new UsernamePasswordCredentials("administrator", "administrator");
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
httppost.addHeader("Content-Type", "text/plain");
httppost.addHeader(new BasicScheme().authenticate(creds, httppost, null));
//Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try {
// do something useful
} finally {
instream.close();
}
}
}
}
Aber wenn ich die Anfrage auf der Sendeseite der korrekte „Dateiname“ wird gesendet, jedoch senden, wenn der Antrag auf der anderen Seite empfangen wird, der „Dateiname“ wird :
filename = D% 3A% 5C% 5CColibri_workspace% 5Ccolibri_trunk% 5Czarr% 5Czarr-backend% 5Cservers% 5Cwildfly-8.2.0.Final% 5Cbin% 5Cpresentation% 5Csoap_automation% 5CBANKDIRECTORYPLUS_V3_DAILY_DELTA_20170930.txt
Wenn ich SOAPUI-Software zum Senden der Anfrage verwende, ist der Dateiname der gleiche wie der gesendete. Fehle ich hier etwas?
Bitte helfen.
encode Dateiname using URLEncoder.encode (Dateiname, "UTF-8"); – Satya
Das ist der Grund, warum der Dateiname sich ändert Ihre Zeichen konvertieren zu etwas anderem hier ist eine Website als Referenz https://www.obkb.com/dcljr/charstxt.html – Matt
@Satya es funktioniert nicht. Können Sie bitte Ihre Lösung ausarbeiten (PS: Schreiben Sie es als Antwort). – ITguy