我试图在cURL
中使用PHP
从外部网站获取数据,但不知何故,它无效。
我已在CURL
检查phpinfo()
启用了cURL
。它显示<?php
if (! function_exists ( 'curl_version' )) {
exit ( "Enable cURL in PHP" );
}
$ch = curl_init ();
$timeout = 0; // 100; // set to zero for no timeout
$myHITurl = "http://www.google.com";
curl_setopt ( $ch, CURLOPT_URL, $myHITurl );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
$file_contents = curl_exec ( $ch );
if (curl_errno ( $ch )) {
echo curl_error ( $ch );
curl_close ( $ch );
exit ();
}
curl_close ( $ch );
// dump output of api if you want during test
echo "$file_contents";
?>
已启用
但是,我的代码无效。
using MvcApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
namespace MvcApplication1.Controllers
{
public class LoginController : Controller
{
//
// GET: /Login/
public ActionResult Index()
{
return View();
}
public ActionResult Login()
{
return View();
}
public JsonResult UserLogin(Customer d)
{
using (CustomerDataEntities oe = new CustomerDataEntities())
{
var user = oe.Customers.Where(a => a.UserName.Equals(d.UserName) && a.Password.Equals(d.Password)).FirstOrDefault();
return new JsonResult { Data = user, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
}
答案 0 :(得分:7)
您的代码非常完美,我已经在自己的服务器(德克萨斯州的数据中心)上进行了测试,并且运行正常。
我的猜测是你的服务器IP被禁止了。尝试获取不同的URL,看看它是否适合您。如果确实如此,那么您将被禁止,如果没有,那么它可能是您服务器中的防火墙配置问题。
答案 1 :(得分:0)
如果您使用的是Centos或Fedora或任何Redhat Distro,请禁用SELinux
nano /etc/selinux/config
更改
SELINUX=enforcing
到
SELINUX=disabled