将php中的CURL转换为C#.Net
我试图将PHP中的CURL转换为C#,PHP中的调用成功,在C#中进行调用时,返回401错误 产生将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
未经授权错误(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>