将php中的CURL转换为C#.Net

将php中的CURL转换为C#.Net,c#,php,curl,C#,Php,Curl,我试图将PHP中的CURL转换为C#,PHP中的调用成功,在C#中进行调用时,返回401错误 产生未经授权错误(401): 工作PHP版本: $sessionToken = getGUID(); $url = "https://devapice.vnforapps.com/api.ecommerce/api/v1/ecommerce/token/1480XXXXX"; $header = array("Content-Type: application/json","VisaNet-Sessio

我试图将PHP中的CURL转换为C#,PHP中的调用成功,在C#中进行调用时,返回401错误

产生
未经授权错误(401)

工作PHP版本:

$sessionToken = getGUID();
$url = "https://devapice.vnforapps.com/api.ecommerce/api/v1/ecommerce/token/1480XXXXX";
$header = array("Content-Type: application/json","VisaNet-Session-Key: $sessionToken");
    $request_body="{
        \"amount\":1.00
    }";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "XXXAILCA2WW4PT2QHXXX:XXXa4Zg3ltemrcNG7pLergqwwGlYJH+rahejFXXX");
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$json = json_decode($response);
$dato = $json->sessionKey;

    function getGUID(){
        if (function_exists('com_create_guid')){
            return com_create_guid();
        }else{
            mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.
            $charid = strtoupper(md5(uniqid(rand(), true)));
            $hyphen = chr(45);// "-"
            $uuid = chr(123)// "{"
                .substr($charid, 0, 8).$hyphen
                .substr($charid, 8, 4).$hyphen
                .substr($charid,12, 4).$hyphen
                .substr($charid,16, 4).$hyphen
                .substr($charid,20,12).$hyphen
                .chr(125);// "}"
            $uuid = substr($uuid, 1, 36);
            return $uuid;
        }
    }

激活webrequest的跟踪在app.config中添加此配置 并将其与php请求进行比较

<system.diagnostics>

  <trace autoflush="true" />

  <sources>
    <source name="System.Net" maxdatasize="1024">
      <listeners>
        <add name="MyTraceFile"/>
        <add name="MyConsole"/>
      </listeners>
    </source>
  </sources>

  <sharedListeners>
    <add name="MyTraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="System.Net.trace.log" />
    <add name="MyConsole" type="System.Diagnostics.ConsoleTraceListener" />
  </sharedListeners>

  <switches>
    <add name="System.Net" value="Information" />
  </switches>
</system.diagnostics>


激活webrequest的跟踪,在app.config中添加此配置 并将其与php请求进行比较

<system.diagnostics>

  <trace autoflush="true" />

  <sources>
    <source name="System.Net" maxdatasize="1024">
      <listeners>
        <add name="MyTraceFile"/>
        <add name="MyConsole"/>
      </listeners>
    </source>
  </sources>

  <sharedListeners>
    <add name="MyTraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="System.Net.trace.log" />
    <add name="MyConsole" type="System.Diagnostics.ConsoleTraceListener" />
  </sharedListeners>

  <switches>
    <add name="System.Net" value="Information" />
  </switches>
</system.diagnostics>