मैं जावा में इस कर्ल आदेश की कार्यक्षमता की नकल करने की कोशिश कर रहा हूँ:एचटीपी क्लाइंट का उपयोग कर जावा में एचटीपी मूल प्रमाणीकरण?
curl --basic --user username:password -d "" http://ipaddress/test/login
मैं निम्नलिखित का उपयोग कर कॉमन्स HttpClient 3.0 लिखा था लेकिन किसी भी तरह सर्वर से एक 500 Internal Server Error
हो रही समाप्त हो गया। क्या कोई मुझे बता सकता है कि मैं कुछ गलत कर रहा हूं?
public class HttpBasicAuth {
private static final String ENCODING = "UTF-8";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
HttpClient client = new HttpClient();
client.getState().setCredentials(
new AuthScope("ipaddress", 443, "realm"),
new UsernamePasswordCredentials("test1", "test1")
);
PostMethod post = new PostMethod(
"http://address/test/login");
post.setDoAuthentication(true);
try {
int status = client.executeMethod(post);
System.out.println(status + "\n" + post.getResponseBodyAsString());
} finally {
// release any connection resources used by the method
post.releaseConnection();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
और मैं बाद में करने की कोशिश की एक कॉमन्स HttpClient 4.0.1 लेकिन अब भी वही त्रुटि:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
public class HttpBasicAuth {
private static final String ENCODING = "UTF-8";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials("test1", "test1"));
HttpPost httppost = new HttpPost("http://host:post/test/login");
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response;
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
if (entity != null) {
entity.consumeContent();
}
httpclient.getConnectionManager().shutdown();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
उम का उपयोग करते समय क्या सर्वर लॉग में दिखाने त्रुटि? – hvgotcodes
आह ... मेरे पास सर्वर लॉग तक पहुंच नहीं है :( – Legend
अधिकांश समय प्राधिकरण कुंजी का उपयोग हम कर रहे हैं गलत हो सकता है। http://dev.tapjoy.com/faq/how-to- find-sender-id-and-api-key-for-gcm/यह देखने के लिए कि आप सही कुंजी का उपयोग कर रहे हैं या नहीं। फायरबेस के लिए API कुंजी का चयन करते समय भी मुझे भ्रमित हो गया है हमें क्लाउड में SENDER ID - API कुंजी जोड़ी का उपयोग करना होगा firebase सेटिंग के अंतर्गत मैसेजिंग टैब यानी जाओ अनुप्रयोग firebase करने के लिए -।> एप्लिकेशन सेटिंग में जाएं -।> क्लाउड संदेश वहाँ आप पा सकते हैं प्रेषक आईडी <==> API कुंजी और इस API कुंजी आप FCM भेजने के लिए उपयोग कर सकते हैं – Rahul