我试图将数据作为JSON传递给我的PHP API。 API使用Wamp托管在localhost中。
然后android logcat中出现错误-
org.json.JSONException: Value <html><body><script of type java.lang.String cannot be converted to JSONObject
完整日志-
2019-05-13 23:35:48.159 5767-5866/codecanyon.getpills I/REGISTRATION RESPONSE::: Response{protocol=http/1.1, code=200, message=OK, url=http://mywebsite.com/index.php/rest/user/login}
2019-05-13 23:35:48.163 5767-5866/codecanyon.getpills E/codecanyon.getpills.LoginActivity@ee4c317: <html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("23dfd56dd81de61accd776ec4c11e6ca");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://getpills.rf.gd/index.php/rest/user/login?i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
2019-05-13 23:35:48.165 5767-5866/codecanyon.getpills W/System.err: org.json.JSONException: Value <html><body><script of type java.lang.String cannot be converted to JSONObject
2019-05-13 23:35:48.166 5767-5866/codecanyon.getpills W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
2019-05-13 23:35:48.166 5767-5866/codecanyon.getpills W/System.err: at org.json.JSONObject.<init>(JSONObject.java:163)
2019-05-13 23:35:48.166 5767-5866/codecanyon.getpills W/System.err: at org.json.JSONObject.<init>(JSONObject.java:176)
2019-05-13 23:35:48.167 5767-5866/codecanyon.getpills W/System.err: at util.CommonAsyTask.doInBackground(CommonAsyTask.java:106)
2019-05-13 23:35:48.167 5767-5866/codecanyon.getpills W/System.err: at util.CommonAsyTask.doInBackground(CommonAsyTask.java:24)
2019-05-13 23:35:48.168 5767-5866/codecanyon.getpills W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:333)
2019-05-13 23:35:48.168 5767-5866/codecanyon.getpills W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2019-05-13 23:35:48.168 5767-5866/codecanyon.getpills W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
2019-05-13 23:35:48.169 5767-5866/codecanyon.getpills W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
2019-05-13 23:35:48.169 5767-5866/codecanyon.getpills W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
2019-05-13 23:35:48.169 5767-5866/codecanyon.getpills W/System.err: at java.lang.Thread.run(Thread.java:780)
然后我关注了此主题-
WAMP error: Forbidden You don't have permission to access /phpmyadmin/ on this server?
并进行了更改-
httpd-vhosts.conf(C:\ wamp64 \ bin \ apache \ apache2.4.33 \ conf \ extra \ httpd-vhosts.conf)文件-
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
到
<Directory "d:/wamp64/apps/phpmyadmin4.7.9/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
然后解决了本地主机的问题
现在我想对使用cPanel的真实服务器执行相同操作
我该怎么做?
因为它显示了相同的json错误
答案 0 :(得分:0)
如果我理解正确,则您希望允许所有传入请求。可以,但是可能有潜在危险。
一种更安全的方法是创建具有特定权限的用户,然后再在config.php(或使用mysqli_connect的任何地方)中使用该用户凭据。
在每个cpanel上,您都会获得一个名为MySql数据库。在其中,您应该获得一个名为“添加用户”的选项。创建一个新用户并将其添加到您的数据库。在那里它将询问您有关权限的信息。根据您的要求设置权限。例如,如果您只需要读取访问权限,则只能允许“ SELECT”。然后,您可以访问phpmyadmin。
要连接到数据库,可以使用以下代码段-
$connection = mysqli_connect("localhost", "user_name", "user_password", "database_name");
屏幕截图-
https://postimg.cc/WdpsFnwY(用户创建)
https://postimg.cc/MnsqyQs6(设置权限)
请参考此链接以获取详细指南-https://support.hostgator.com/articles/cpanel/how-do-i-create-a-mysql-database-a-user-and-then-delete-if-needed