2014-01-11 3 views
0

Примечание: запрос отправляется с php на сервер asp.net, вы можете увидеть URL-адрес ниже. Насколько я знаю, это должно сработать, но я получаю сообщение об ошибке html вместо приятного ответа json-данных! Вот входы:
QueryString: _tsmp = "1389427807768"
Запрос Полезная нагрузка: { "старт": 0, "длина": 20, "SortBy": "DC", "sortAscending" ложь "providerId ": 128391," currencyIds ": []," fromDateStr ":" 2007-01-01 "," toDateStr ":" 2014-01-11 "," validTrades ": true," lotSize ": 2}Ответ cURL просит файл web.config записать ошибку в

* локальный файл/тест/proxy.php * обрабатывает запрос от Jquery AJAX

<?php 
$input = @file_get_contents('php://input'); 
$jdv = json_decode($input, true); 


date_default_timezone_set('Europe/Kiev'); 
$url = 'http://www.zulutrade.com/WebServices/Performance.asmx/GetProviderTrades?_tsmp'.$_GET['_tsmp']; 

foreach($_GET as $getname => $getvar) { 
    $fields[$getname] = urlencode($getvar); //for proxying get request to POST. 
} 

foreach($jdv as $postname => $postvar) { 
if(is_array($postvar))$postvar = implode(",",$postvar); 
    $fields[$postname ] = urlencode($postvar); //for proxying POST requests. 
} 

$fields_string = ""; 
//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

echo $result; 

Response

<html> 
<head> 
    <title>Runtime Error</title> 
    <style> 
    body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
    p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 
    b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 
    H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 
    H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 
    pre {font-family:"Lucida Console";font-size: .9em} 
    .marker {font-weight: bold; color: black;text-decoration: none;} 
    .version {color: gray;} 
    .error {margin-bottom: 10px;} 
    .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } 
    </style> 
</head> 

<body bgcolor="white"> 

     <span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1> 

     <h2> <i>Runtime Error</i> </h2></span> 

     <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> 

     <b> Description: </b>An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 
     <br><br> 

     <b>Details:</b> To enable the details of this specific error message to be viewable on remote machines, please create a &lt;customErrors&gt; tag within a &quot;web.config&quot; configuration file located in the root directory of the current web application. This &lt;customErrors&gt; tag should then have its &quot;mode&quot; attribute set to &quot;Off&quot;.<br><br> 

     <table width=100% bgcolor="#ffffcc"> 
      <tr> 
       <td> 
        <code><pre> 

&lt;!-- Web.Config Configuration File --&gt; 

&lt;configuration&gt; 
&lt;system.web&gt; 
    &lt;customErrors mode=&quot;Off&quot;/&gt; 
&lt;/system.web&gt; 
&lt;/configuration&gt;</pre></code> 

       </td> 
      </tr> 
     </table> 

     <br> 

     <b>Notes:</b> The current error page you are seeing can be replaced by a custom error page by modifying the &quot;defaultRedirect&quot; attribute of the application&#39;s &lt;customErrors&gt; configuration tag to point to a custom error page URL.<br><br> 

     <table width=100% bgcolor="#ffffcc"> 
      <tr> 
       <td> 
        <code><pre> 

&lt;!-- Web.Config Configuration File --&gt; 

&lt;configuration&gt; 
&lt;system.web&gt; 
    &lt;customErrors mode=&quot;RemoteOnly&quot; defaultRedirect=&quot;mycustompage.htm&quot;/&gt; 
&lt;/system.web&gt; 
&lt;/configuration&gt;</pre></code> 

       </td> 
      </tr> 
     </table> 

     <br> 

</body> 

Что мне делать? Я заставил файлы поместить их в корень по указанию, чтобы файл записи был доступен для записи, и я ничего не получаю.

+0

Какое приложение вы помещаете в корень? –

+0

Файл proxy.php находится в папке моего локального хоста, поэтому я поместил файл web.config в корень localhost (var/www). –

ответ

0

Сообщение об ошибке, которое вы видите, говорит «что-то» пошло не так - и предполагает, что вы разрешаете удаленные ошибки на хосте ASP.Net, редактируя его web.config, чтобы рассказать вам больше. Возможно, это связано с тем, что у сервера есть ошибка или это может быть ошибка в запросе, который вы делаете, поэтому либо присоедините отладчик к вашему сайту ASP.Net, либо разрешите удаленные ошибки.

+0

Хорошо, поэтому он скрывает ошибку. У меня нет доступа к этому серверу, поэтому я ничего не могу сделать о web.config. Так что-нибудь выпрыгивает на вас, что может быть неправильным с просьбой? Вы можете проверить, как выглядит исходный запрос на этой странице: http://www.zulutrade.com/trader/128391 –

+0

Есть ли причина, по которой вы не используете интерфейс [SOAP] (http: // www. zulutrade.com/WebServices/Performance.asmx?op=GetProviderTrades) (как описано в их [WSDL] (http://www.zulutrade.com/WebServices/Performance.asmx?op=GetProviderTrades) –

+0

Мне было интересно, почему они используйте «webservices» в URL-адресе)) Спасибо! Откуда вы узнали, что есть мыльный интерфейс? –

Смежные вопросы