Skip to content

Instantly share code, notes, and snippets.

@bryjbrown
Created March 25, 2020 13:01
Show Gist options
  • Save bryjbrown/aeb1c82f2e4a2798e372cbc0404e035e to your computer and use it in GitHub Desktop.
Save bryjbrown/aeb1c82f2e4a2798e372cbc0404e035e to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
PREFIX='10.00000';
USERNAME='username'
PASSWORD='password'
TESTMODE=true;
FILE='path/to/file.xml'
if $TESTMODE
then
URL='https://test.crossref.org/servlet/deposit'
else
URL='https://doi.crossref.org/servlet/deposit'
fi
curl -F \
'operation=doQueryUpload' \
-F "login_id=${USERNAME}" \
-F "login_passwd=${PASSWORD}" \
-F "fname=@${FILE}" \
$URL
@gbilder
Copy link

gbilder commented Apr 2, 2020

Hmm. Not sure what to say. Just tested and both of these work (replace username/password):

curl --location --request POST 'https://test.crossref.org/servlet/deposit' \
--form 'operation=doMDUpload' \
--form 'login_id=<username>' \
--form 'login_passwd=<password>' \
--form 'fname=@/tmp/deposit.xml'

As does this PHP (curl):

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://test.crossref.org/servlet/deposit",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array('operation' => 'doMDUpload','login_id' => '<username>','login_passwd' => '<password>','fname'=> new 
  CURLFILE('/tmp/deposit.xml')),
  
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment