2016-12-20 47 views
0

工作正常,我能昨天得到一個GET請求數據的URL,但是今天如果我叫相同的API,我得到java.io.FileNotFoundException爲其昨天

java.io.FileNotFoundException: https://api.quikr.com/jobs/v1/zwayam/application?companyName=test&jobId=123 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) 
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 com.zwayam.controller.QuikrDataPoint.getJobApplicationForQuikrJobs(QuikrDataPoint.java:162) 
at com.zwayam.controller.QuikrDataPoint.main(QuikrDataPoint.java:54) 

所致:JAVA .io.FileNotFoundException:https://api.quikr.com/jobs/v1/zwayam/application?companyName=test&jobId=123 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net。 HttpURLConnection.getResponseCode(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source) 在com.zwayam.controller.QuikrDataPoint.getJobApplicationForQuikrJobs(QuikrDataPoint.java:159) ... 1更多

有要設置 一些應用頭我不能直接訪問這個API的瀏覽器堂妹這是一個編碼問題還是api問題?

String urlstr = "https://api.quikr.com/jobs/v1/zwayam/application?"; 

     List<NameValuePair> params = new LinkedList<NameValuePair>(); 

     params.add(new BasicNameValuePair("companyName", "test")); 
     params.add(new BasicNameValuePair("jobId", "123")); 
     String paramString = URLEncodedUtils.format(params, "utf-8"); 

     url = new URL(urlstr + paramString); 

     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.setDoOutput(true); 
     connection.setRequestProperty("Accept", "application/json"); 
     System.setProperty("http.agent", ""); 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd"); 
     String todaysDate = format.format(cal.getTime()); 
     String emailId = "[email protected]"; 
     String data = appId + emailId + todaysDate; 
     SecretKeySpec signingKey = new SecretKeySpec(tokenKey.getBytes(), "HmacSHA1"); 
     Mac mac = Mac.getInstance("HmacSHA1"); 
     mac.init(signingKey); 
     String signature = toHexString(mac.doFinal(data.getBytes())); 
     connection.setRequestProperty("Content-Type", "application/JSON"); 
     connection.setRequestProperty("X-Quikr-App-Id", "890"); 
     connection.setRequestProperty("X-Quikr-Token-Id", tokenId.toString()); 
     connection.setRequestProperty("X-Quikr-Signature-v2", signature); 
     connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); 
     int responseCode = connection.getResponseCode(); 

這是調用API的部分,響應代碼,我得到的是404

+0

我想我們需要看到QuikrDataPoint.java:162,但通常FileNotFound只意味着一件事 –

+0

*我得到的響應代碼是404 *您的故事已更改。當然你知道'404'的含義 –

回答

0

的問題是與API,他們固定它,現在它的工作罰款:)