Você pode passar uma lista de IDs de recurso da seguinte maneira:
OBTER:
http://<hostname>/wfs?service=WFS&version=1.1.0&request=GetFeature&typename=foo&featureid=id_1,id_2,id_3
POSTAR:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature version="1.1.0" outputFormat="text/xml; subtype=gml/3.1.1" service="WFS" resultType="results" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Query typeName="foo">
<wfs:PropertyName>String</wfs:PropertyName>
<ogc:Filter>
<ogc:FeatureId fid="id_1"/>
<ogc:FeatureId fid="id_2"/>
<ogc:FeatureId fid="id_3"/>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
A opção POST é obviamente mais detalhada, mas menor que as construções PropertyIsEqualTo em loop.