You can use cURL or fsockopen() if it's a simple xml request, not a web service.
If it's a web service, your best bet is soap.
If you want a simple solution, try cURL, but I must admin I just discared one such solution, as it was hanging from time to time (in around 20% of the cases) for some unknown reason. Altho this was my first such problem and no-one heard of similar around several php boards, so quite likely it was some local issue on the server used.
With fsockopen you have complete control, but you have to take care of basically everything, down to http headers.